mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-15 03:45:30 +07:00
little cleanup
This commit is contained in:
@@ -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>;
|
||||||
|
|||||||
@@ -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 >
|
||||||
|
|||||||
@@ -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>;
|
||||||
|
|||||||
Reference in New Issue
Block a user