mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-14 19:41:29 +07:00
remove non_uvalue_family concept
This commit is contained in:
@@ -1524,9 +1524,6 @@ namespace meta_hpp
|
||||
|| std::is_same_v<T, uerror> //
|
||||
|| std::is_same_v<T, uresult> //
|
||||
|| std::is_same_v<T, uvalue>; //
|
||||
|
||||
template < typename T >
|
||||
concept non_uvalue_family = !uvalue_family<T>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3132,8 +3129,8 @@ namespace meta_hpp
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
!std::is_same_v<Tp, uvalue> && //
|
||||
!detail::is_in_place_type_v<Tp> && //
|
||||
detail::non_uvalue_family<Tp> && //
|
||||
std::is_copy_constructible_v<Tp>>> //
|
||||
uvalue(T&& val);
|
||||
|
||||
@@ -3141,7 +3138,7 @@ namespace meta_hpp
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
detail::non_uvalue_family<Tp> && //
|
||||
!std::is_same_v<Tp, uvalue> && //
|
||||
std::is_copy_constructible_v<Tp>>> //
|
||||
uvalue& operator=(T&& val);
|
||||
|
||||
@@ -3337,8 +3334,8 @@ namespace meta_hpp
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
!std::is_same_v<Tp, uresult> && //
|
||||
!detail::is_in_place_type_v<Tp> && //
|
||||
detail::non_uvalue_family<Tp> && //
|
||||
std::is_copy_constructible_v<Tp>>> //
|
||||
uresult(T&& val);
|
||||
|
||||
@@ -3346,7 +3343,7 @@ namespace meta_hpp
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
detail::non_uvalue_family<Tp> && //
|
||||
!std::is_same_v<Tp, uresult> && //
|
||||
std::is_copy_constructible_v<Tp>>> //
|
||||
uresult& operator=(T&& val);
|
||||
|
||||
@@ -5687,13 +5684,13 @@ namespace meta_hpp
|
||||
namespace meta_hpp::detail
|
||||
{
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
concept arg_lvalue_ref_kind //
|
||||
= (non_uvalue_family<Tp>) //
|
||||
concept arg_lvalue_ref_kind //
|
||||
= (!uvalue_family<Tp>) //
|
||||
&&(std::is_lvalue_reference_v<T>);
|
||||
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
concept arg_rvalue_ref_kind //
|
||||
= (non_uvalue_family<Tp>) //
|
||||
concept arg_rvalue_ref_kind //
|
||||
= (!uvalue_family<Tp>) //
|
||||
&&(!std::is_reference_v<T> || std::is_rvalue_reference_v<T>);
|
||||
}
|
||||
|
||||
@@ -5706,13 +5703,13 @@ namespace meta_hpp::detail
|
||||
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
concept inst_class_lvalue_ref_kind //
|
||||
= (non_uvalue_family<Tp>) //
|
||||
= (!uvalue_family<Tp>) //
|
||||
&&(std::is_lvalue_reference_v<T>) //
|
||||
&&(std::is_class_v<std::remove_pointer_t<std::remove_reference_t<T>>>);
|
||||
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
concept inst_class_rvalue_ref_kind //
|
||||
= (non_uvalue_family<Tp>) //
|
||||
= (!uvalue_family<Tp>) //
|
||||
&&(!std::is_reference_v<T> || std::is_rvalue_reference_v<T>) //
|
||||
&&(std::is_class_v<std::remove_pointer_t<std::remove_reference_t<T>>>);
|
||||
}
|
||||
@@ -5891,7 +5888,8 @@ namespace meta_hpp::detail
|
||||
uarg_base& operator=(uarg_base&&) = delete;
|
||||
uarg_base& operator=(const uarg_base&) = delete;
|
||||
|
||||
template < typename T, non_uvalue_family Tp = std::decay_t<T> >
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
requires(!uvalue_family<Tp>)
|
||||
explicit uarg_base(type_registry& registry, T&&)
|
||||
: uarg_base{registry, type_list<T&&>{}} {}
|
||||
|
||||
@@ -5983,7 +5981,8 @@ namespace meta_hpp::detail
|
||||
// 'uarg_base' doesn't actually move 'v', just gets its type
|
||||
}
|
||||
|
||||
template < typename T, non_uvalue_family Tp = std::decay_t<T> >
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
requires(!uvalue_family<Tp>)
|
||||
explicit uarg(type_registry& registry, T&& v)
|
||||
: uarg_base{registry, std::forward<T>(v)}
|
||||
, data_{const_cast<std::remove_cvref_t<T>*>(std::addressof(v))} { // NOLINT(*-const-cast)
|
||||
@@ -6489,7 +6488,8 @@ namespace meta_hpp::detail
|
||||
uinst_base& operator=(uinst_base&&) = delete;
|
||||
uinst_base& operator=(const uinst_base&) = delete;
|
||||
|
||||
template < typename T, non_uvalue_family Tp = std::decay_t<T> >
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
requires(!uvalue_family<Tp>)
|
||||
explicit uinst_base(type_registry& registry, T&&)
|
||||
: uinst_base{registry, type_list<T&&>{}} {}
|
||||
|
||||
@@ -6582,7 +6582,8 @@ namespace meta_hpp::detail
|
||||
// 'uinst_base' doesn't actually move 'v', just gets its type
|
||||
}
|
||||
|
||||
template < typename T, non_uvalue_family Tp = std::decay_t<T> >
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
requires(!uvalue_family<Tp>)
|
||||
explicit uinst(type_registry& registry, T&& v)
|
||||
: uinst_base{registry, std::forward<T>(v)}
|
||||
, data_{const_cast<std::remove_cvref_t<T>*>(std::addressof(v))} { // NOLINT(*-const-cast)
|
||||
|
||||
@@ -72,9 +72,6 @@ namespace meta_hpp
|
||||
|| std::is_same_v<T, uerror> //
|
||||
|| std::is_same_v<T, uresult> //
|
||||
|| std::is_same_v<T, uvalue>; //
|
||||
|
||||
template < typename T >
|
||||
concept non_uvalue_family = !uvalue_family<T>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ namespace meta_hpp::detail
|
||||
uarg_base& operator=(uarg_base&&) = delete;
|
||||
uarg_base& operator=(const uarg_base&) = delete;
|
||||
|
||||
template < typename T, non_uvalue_family Tp = std::decay_t<T> >
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
requires(!uvalue_family<Tp>)
|
||||
explicit uarg_base(type_registry& registry, T&&)
|
||||
: uarg_base{registry, type_list<T&&>{}} {}
|
||||
|
||||
@@ -126,7 +127,8 @@ namespace meta_hpp::detail
|
||||
// 'uarg_base' doesn't actually move 'v', just gets its type
|
||||
}
|
||||
|
||||
template < typename T, non_uvalue_family Tp = std::decay_t<T> >
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
requires(!uvalue_family<Tp>)
|
||||
explicit uarg(type_registry& registry, T&& v)
|
||||
: uarg_base{registry, std::forward<T>(v)}
|
||||
, data_{const_cast<std::remove_cvref_t<T>*>(std::addressof(v))} { // NOLINT(*-const-cast)
|
||||
|
||||
@@ -34,7 +34,8 @@ namespace meta_hpp::detail
|
||||
uinst_base& operator=(uinst_base&&) = delete;
|
||||
uinst_base& operator=(const uinst_base&) = delete;
|
||||
|
||||
template < typename T, non_uvalue_family Tp = std::decay_t<T> >
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
requires(!uvalue_family<Tp>)
|
||||
explicit uinst_base(type_registry& registry, T&&)
|
||||
: uinst_base{registry, type_list<T&&>{}} {}
|
||||
|
||||
@@ -127,7 +128,8 @@ namespace meta_hpp::detail
|
||||
// 'uinst_base' doesn't actually move 'v', just gets its type
|
||||
}
|
||||
|
||||
template < typename T, non_uvalue_family Tp = std::decay_t<T> >
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
requires(!uvalue_family<Tp>)
|
||||
explicit uinst(type_registry& registry, T&& v)
|
||||
: uinst_base{registry, std::forward<T>(v)}
|
||||
, data_{const_cast<std::remove_cvref_t<T>*>(std::addressof(v))} { // NOLINT(*-const-cast)
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
namespace meta_hpp::detail
|
||||
{
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
concept arg_lvalue_ref_kind //
|
||||
= (non_uvalue_family<Tp>) //
|
||||
concept arg_lvalue_ref_kind //
|
||||
= (!uvalue_family<Tp>) //
|
||||
&&(std::is_lvalue_reference_v<T>);
|
||||
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
concept arg_rvalue_ref_kind //
|
||||
= (non_uvalue_family<Tp>) //
|
||||
concept arg_rvalue_ref_kind //
|
||||
= (!uvalue_family<Tp>) //
|
||||
&&(!std::is_reference_v<T> || std::is_rvalue_reference_v<T>);
|
||||
}
|
||||
|
||||
@@ -31,13 +31,13 @@ namespace meta_hpp::detail
|
||||
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
concept inst_class_lvalue_ref_kind //
|
||||
= (non_uvalue_family<Tp>) //
|
||||
= (!uvalue_family<Tp>) //
|
||||
&&(std::is_lvalue_reference_v<T>) //
|
||||
&&(std::is_class_v<std::remove_pointer_t<std::remove_reference_t<T>>>);
|
||||
|
||||
template < typename T, typename Tp = std::decay_t<T> >
|
||||
concept inst_class_rvalue_ref_kind //
|
||||
= (non_uvalue_family<Tp>) //
|
||||
= (!uvalue_family<Tp>) //
|
||||
&&(!std::is_reference_v<T> || std::is_rvalue_reference_v<T>) //
|
||||
&&(std::is_class_v<std::remove_pointer_t<std::remove_reference_t<T>>>);
|
||||
}
|
||||
|
||||
@@ -83,8 +83,8 @@ namespace meta_hpp
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
!std::is_same_v<Tp, uresult> && //
|
||||
!detail::is_in_place_type_v<Tp> && //
|
||||
detail::non_uvalue_family<Tp> && //
|
||||
std::is_copy_constructible_v<Tp>>> //
|
||||
uresult(T&& val);
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace meta_hpp
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
detail::non_uvalue_family<Tp> && //
|
||||
!std::is_same_v<Tp, uresult> && //
|
||||
std::is_copy_constructible_v<Tp>>> //
|
||||
uresult& operator=(T&& val);
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ namespace meta_hpp
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
!std::is_same_v<Tp, uvalue> && //
|
||||
!detail::is_in_place_type_v<Tp> && //
|
||||
detail::non_uvalue_family<Tp> && //
|
||||
std::is_copy_constructible_v<Tp>>> //
|
||||
uvalue(T&& val);
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace meta_hpp
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
detail::non_uvalue_family<Tp> && //
|
||||
!std::is_same_v<Tp, uvalue> && //
|
||||
std::is_copy_constructible_v<Tp>>> //
|
||||
uvalue& operator=(T&& val);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user