remove non_uvalue_family concept

This commit is contained in:
BlackMATov
2023-07-20 10:47:36 +07:00
parent a408421e45
commit 29078d7d77
7 changed files with 36 additions and 34 deletions

View File

@@ -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);
@@ -5688,12 +5685,12 @@ namespace meta_hpp::detail
{
template < typename T, typename Tp = std::decay_t<T> >
concept arg_lvalue_ref_kind //
= (non_uvalue_family<Tp>) //
= (!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>) //
= (!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)

View File

@@ -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>;
}
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -13,12 +13,12 @@ namespace meta_hpp::detail
{
template < typename T, typename Tp = std::decay_t<T> >
concept arg_lvalue_ref_kind //
= (non_uvalue_family<Tp>) //
= (!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>) //
= (!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>>>);
}

View File

@@ -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);

View File

@@ -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);