前后端全部提交

This commit is contained in:
2026-08-21 01:30:17 +08:00
parent 70dedbe0ec
commit 26a89335b4
70 changed files with 752 additions and 284 deletions
@@ -281,10 +281,14 @@ template <auto Member, typename Prop>
concept Prop_Member = requires {
requires std::is_member_object_pointer_v<decltype(Member)>;
requires std::derived_from<Prop, typename Member_Pointer_Traits<decltype(Member)>::Owner_Type>;
requires Tagged_Prop<typename Member_Pointer_Traits<decltype(Member)>::Owner_Type>;
requires requires { typename Member_Pointer_Traits<decltype(Member)>::Owner_Type::Prop_Tag; } || Tagged_Prop<typename Member_Pointer_Traits<decltype(Member)>::Owner_Type>;
};
template <typename Owner, typename = void>
struct Prop_Owner_Tag { using Type = typename Owner::Tag_Type; };
template <typename Owner>
struct Prop_Owner_Tag<Owner, std::void_t<typename Owner::Prop_Tag>> { using Type = typename Owner::Prop_Tag; };
template <auto Member>
using Prop_Member_Tag = typename Member_Pointer_Traits<decltype(Member)>::Owner_Type::Tag_Type;
using Prop_Member_Tag = typename Prop_Owner_Tag<typename Member_Pointer_Traits<decltype(Member)>::Owner_Type>::Type;
template <typename Value, auto Member, typename State>
concept State_Member_Settable = requires(State& state, Value&& value) {
requires State_Member<Member, State>;