little cleanup

This commit is contained in:
BlackMATov
2023-08-10 23:24:06 +07:00
parent 3a5cab9eaa
commit 5b1928b173
3 changed files with 24 additions and 32 deletions

View File

@@ -4500,19 +4500,19 @@ namespace meta_hpp::detail
concept class_bind_destructor_kind // concept class_bind_destructor_kind //
= class_kind<Class> && std::is_destructible_v<Class>; // = class_kind<Class> && std::is_destructible_v<Class>; //
template < typename Class, typename Base > template < typename Base, typename Class >
concept class_bind_base_kind // concept class_bind_base_kind //
= class_kind<Class> && class_kind<Base> // = class_kind<Base> && class_kind<Class> //
&& std::derived_from<Class, Base>; // && std::derived_from<Class, Base>; //
template < typename Class, typename Member > template < typename Member, typename Class >
concept class_bind_member_kind // concept class_bind_member_kind //
= class_kind<Class> && member_pointer_kind<Member> // = member_pointer_kind<Member> && class_kind<Class> //
&& std::is_same_v<Class, typename member_traits<Member>::class_type>; // && std::is_same_v<Class, typename member_traits<Member>::class_type>; //
template < typename Class, typename Method > template < typename Method, typename Class >
concept class_bind_method_kind // concept class_bind_method_kind //
= class_kind<Class> && method_pointer_kind<Method> // = method_pointer_kind<Method> && class_kind<Class> //
&& std::is_same_v<Class, typename method_traits<Method>::class_type>; // && std::is_same_v<Class, typename method_traits<Method>::class_type>; //
} }
@@ -4629,8 +4629,7 @@ namespace meta_hpp
public: public:
explicit class_bind(metadata_map metadata); explicit class_bind(metadata_map metadata);
template < detail::class_kind... Bases > template < detail::class_bind_base_kind<Class>... Bases >
requires(... && detail::class_bind_base_kind<Class, Bases>)
class_bind& base_(); class_bind& base_();
template < typename... Args, typename... Opts > template < typename... Args, typename... Opts >
@@ -4644,11 +4643,10 @@ namespace meta_hpp
template < detail::function_pointer_kind Function, typename... Opts > template < detail::function_pointer_kind Function, typename... Opts >
class_bind& function_(std::string name, Function function_ptr, Opts&&... opts); class_bind& function_(std::string name, Function function_ptr, Opts&&... opts);
template < detail::member_pointer_kind Member, typename... Opts > template < detail::class_bind_member_kind<Class> Member, typename... Opts >
class_bind& member_(std::string name, Member member_ptr, Opts&&... opts); class_bind& member_(std::string name, Member member_ptr, Opts&&... opts);
template < detail::method_pointer_kind Method, typename... Opts > template < detail::class_bind_method_kind<Class> Method, typename... Opts >
requires detail::class_bind_method_kind<Class, Method>
class_bind& method_(std::string name, Method method_ptr, Opts&&... opts); class_bind& method_(std::string name, Method method_ptr, Opts&&... opts);
template < typename Type > template < typename Type >
@@ -5024,8 +5022,7 @@ namespace meta_hpp
} }
template < detail::class_kind Class > template < detail::class_kind Class >
template < detail::class_kind... Bases > template < detail::class_bind_base_kind<Class>... Bases >
requires(... && detail::class_bind_base_kind<Class, Bases>)
class_bind<Class>& class_bind<Class>::base_() { class_bind<Class>& class_bind<Class>::base_() {
using namespace detail; using namespace detail;
using namespace detail::class_bind_impl; using namespace detail::class_bind_impl;
@@ -5211,7 +5208,7 @@ namespace meta_hpp
} }
template < detail::class_kind Class > template < detail::class_kind Class >
template < detail::member_pointer_kind Member, typename... Opts > template < detail::class_bind_member_kind<Class> Member, typename... Opts >
class_bind<Class>& class_bind<Class>::member_(std::string name, Member member_ptr, [[maybe_unused]] Opts&&... opts) { class_bind<Class>& class_bind<Class>::member_(std::string name, Member member_ptr, [[maybe_unused]] Opts&&... opts) {
using opts_t = detail::type_list<std::remove_cvref_t<Opts>...>; using opts_t = detail::type_list<std::remove_cvref_t<Opts>...>;
using policy_t = detail::type_list_first_of_t<member_policy::is_family, member_policy::as_copy_t, opts_t>; using policy_t = detail::type_list_first_of_t<member_policy::is_family, member_policy::as_copy_t, opts_t>;
@@ -5247,8 +5244,7 @@ namespace meta_hpp
} }
template < detail::class_kind Class > template < detail::class_kind Class >
template < detail::method_pointer_kind Method, typename... Opts > template < detail::class_bind_method_kind<Class> Method, typename... Opts >
requires detail::class_bind_method_kind<Class, Method>
class_bind<Class>& class_bind<Class>::method_(std::string name, Method method_ptr, Opts&&... opts) { class_bind<Class>& class_bind<Class>::method_(std::string name, Method method_ptr, Opts&&... opts) {
using opts_t = detail::type_list<std::remove_cvref_t<Opts>...>; using opts_t = detail::type_list<std::remove_cvref_t<Opts>...>;
using policy_t = detail::type_list_first_of_t<method_policy::is_family, method_policy::as_copy_t, opts_t>; using policy_t = detail::type_list_first_of_t<method_policy::is_family, method_policy::as_copy_t, opts_t>;

View File

@@ -22,19 +22,19 @@ namespace meta_hpp::detail
concept class_bind_destructor_kind // concept class_bind_destructor_kind //
= class_kind<Class> && std::is_destructible_v<Class>; // = class_kind<Class> && std::is_destructible_v<Class>; //
template < typename Class, typename Base > template < typename Base, typename Class >
concept class_bind_base_kind // concept class_bind_base_kind //
= class_kind<Class> && class_kind<Base> // = class_kind<Base> && class_kind<Class> //
&& std::derived_from<Class, Base>; // && std::derived_from<Class, Base>; //
template < typename Class, typename Member > template < typename Member, typename Class >
concept class_bind_member_kind // concept class_bind_member_kind //
= class_kind<Class> && member_pointer_kind<Member> // = member_pointer_kind<Member> && class_kind<Class> //
&& std::is_same_v<Class, typename member_traits<Member>::class_type>; // && std::is_same_v<Class, typename member_traits<Member>::class_type>; //
template < typename Class, typename Method > template < typename Method, typename Class >
concept class_bind_method_kind // concept class_bind_method_kind //
= class_kind<Class> && method_pointer_kind<Method> // = method_pointer_kind<Method> && class_kind<Class> //
&& std::is_same_v<Class, typename method_traits<Method>::class_type>; // && std::is_same_v<Class, typename method_traits<Method>::class_type>; //
} }
@@ -151,8 +151,7 @@ namespace meta_hpp
public: public:
explicit class_bind(metadata_map metadata); explicit class_bind(metadata_map metadata);
template < detail::class_kind... Bases > template < detail::class_bind_base_kind<Class>... Bases >
requires(... && detail::class_bind_base_kind<Class, Bases>)
class_bind& base_(); class_bind& base_();
template < typename... Args, typename... Opts > template < typename... Args, typename... Opts >
@@ -166,11 +165,10 @@ namespace meta_hpp
template < detail::function_pointer_kind Function, typename... Opts > template < detail::function_pointer_kind Function, typename... Opts >
class_bind& function_(std::string name, Function function_ptr, Opts&&... opts); class_bind& function_(std::string name, Function function_ptr, Opts&&... opts);
template < detail::member_pointer_kind Member, typename... Opts > template < detail::class_bind_member_kind<Class> Member, typename... Opts >
class_bind& member_(std::string name, Member member_ptr, Opts&&... opts); class_bind& member_(std::string name, Member member_ptr, Opts&&... opts);
template < detail::method_pointer_kind Method, typename... Opts > template < detail::class_bind_method_kind<Class> Method, typename... Opts >
requires detail::class_bind_method_kind<Class, Method>
class_bind& method_(std::string name, Method method_ptr, Opts&&... opts); class_bind& method_(std::string name, Method method_ptr, Opts&&... opts);
template < typename Type > template < typename Type >

View File

@@ -98,8 +98,7 @@ namespace meta_hpp
} }
template < detail::class_kind Class > template < detail::class_kind Class >
template < detail::class_kind... Bases > template < detail::class_bind_base_kind<Class>... Bases >
requires(... && detail::class_bind_base_kind<Class, Bases>)
class_bind<Class>& class_bind<Class>::base_() { class_bind<Class>& class_bind<Class>::base_() {
using namespace detail; using namespace detail;
using namespace detail::class_bind_impl; using namespace detail::class_bind_impl;
@@ -285,7 +284,7 @@ namespace meta_hpp
} }
template < detail::class_kind Class > template < detail::class_kind Class >
template < detail::member_pointer_kind Member, typename... Opts > template < detail::class_bind_member_kind<Class> Member, typename... Opts >
class_bind<Class>& class_bind<Class>::member_(std::string name, Member member_ptr, [[maybe_unused]] Opts&&... opts) { class_bind<Class>& class_bind<Class>::member_(std::string name, Member member_ptr, [[maybe_unused]] Opts&&... opts) {
using opts_t = detail::type_list<std::remove_cvref_t<Opts>...>; using opts_t = detail::type_list<std::remove_cvref_t<Opts>...>;
using policy_t = detail::type_list_first_of_t<member_policy::is_family, member_policy::as_copy_t, opts_t>; using policy_t = detail::type_list_first_of_t<member_policy::is_family, member_policy::as_copy_t, opts_t>;
@@ -321,8 +320,7 @@ namespace meta_hpp
} }
template < detail::class_kind Class > template < detail::class_kind Class >
template < detail::method_pointer_kind Method, typename... Opts > template < detail::class_bind_method_kind<Class> Method, typename... Opts >
requires detail::class_bind_method_kind<Class, Method>
class_bind<Class>& class_bind<Class>::method_(std::string name, Method method_ptr, Opts&&... opts) { class_bind<Class>& class_bind<Class>::method_(std::string name, Method method_ptr, Opts&&... opts) {
using opts_t = detail::type_list<std::remove_cvref_t<Opts>...>; using opts_t = detail::type_list<std::remove_cvref_t<Opts>...>;
using policy_t = detail::type_list_first_of_t<method_policy::is_family, method_policy::as_copy_t, opts_t>; using policy_t = detail::type_list_first_of_t<method_policy::is_family, method_policy::as_copy_t, opts_t>;