From 29078d7d77101fe62bcb58513595ebcedcd55088 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Thu, 20 Jul 2023 10:47:36 +0700 Subject: [PATCH] remove non_uvalue_family concept --- develop/singles/headers/meta.hpp/meta_all.hpp | 35 ++++++++++--------- headers/meta.hpp/meta_base.hpp | 3 -- .../meta_detail/value_utilities/uarg.hpp | 6 ++-- .../meta_detail/value_utilities/uinst.hpp | 6 ++-- .../meta_detail/value_utilities/utraits.hpp | 12 +++---- headers/meta.hpp/meta_uresult.hpp | 4 +-- headers/meta.hpp/meta_uvalue.hpp | 4 +-- 7 files changed, 36 insertions(+), 34 deletions(-) diff --git a/develop/singles/headers/meta.hpp/meta_all.hpp b/develop/singles/headers/meta.hpp/meta_all.hpp index ecec002..c20beb4 100644 --- a/develop/singles/headers/meta.hpp/meta_all.hpp +++ b/develop/singles/headers/meta.hpp/meta_all.hpp @@ -1524,9 +1524,6 @@ namespace meta_hpp || std::is_same_v // || std::is_same_v // || std::is_same_v; // - - template < typename T > - concept non_uvalue_family = !uvalue_family; } } @@ -3132,8 +3129,8 @@ namespace meta_hpp typename T, // typename Tp = std::decay_t, // typename = std::enable_if_t< // + !std::is_same_v && // !detail::is_in_place_type_v && // - detail::non_uvalue_family && // std::is_copy_constructible_v>> // uvalue(T&& val); @@ -3141,7 +3138,7 @@ namespace meta_hpp typename T, // typename Tp = std::decay_t, // typename = std::enable_if_t< // - detail::non_uvalue_family && // + !std::is_same_v && // std::is_copy_constructible_v>> // uvalue& operator=(T&& val); @@ -3337,8 +3334,8 @@ namespace meta_hpp typename T, // typename Tp = std::decay_t, // typename = std::enable_if_t< // + !std::is_same_v && // !detail::is_in_place_type_v && // - detail::non_uvalue_family && // std::is_copy_constructible_v>> // uresult(T&& val); @@ -3346,7 +3343,7 @@ namespace meta_hpp typename T, // typename Tp = std::decay_t, // typename = std::enable_if_t< // - detail::non_uvalue_family && // + !std::is_same_v && // std::is_copy_constructible_v>> // uresult& operator=(T&& val); @@ -5687,13 +5684,13 @@ namespace meta_hpp namespace meta_hpp::detail { template < typename T, typename Tp = std::decay_t > - concept arg_lvalue_ref_kind // - = (non_uvalue_family) // + concept arg_lvalue_ref_kind // + = (!uvalue_family) // &&(std::is_lvalue_reference_v); template < typename T, typename Tp = std::decay_t > - concept arg_rvalue_ref_kind // - = (non_uvalue_family) // + concept arg_rvalue_ref_kind // + = (!uvalue_family) // &&(!std::is_reference_v || std::is_rvalue_reference_v); } @@ -5706,13 +5703,13 @@ namespace meta_hpp::detail template < typename T, typename Tp = std::decay_t > concept inst_class_lvalue_ref_kind // - = (non_uvalue_family) // + = (!uvalue_family) // &&(std::is_lvalue_reference_v) // &&(std::is_class_v>>); template < typename T, typename Tp = std::decay_t > concept inst_class_rvalue_ref_kind // - = (non_uvalue_family) // + = (!uvalue_family) // &&(!std::is_reference_v || std::is_rvalue_reference_v) // &&(std::is_class_v>>); } @@ -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 > + template < typename T, typename Tp = std::decay_t > + requires(!uvalue_family) explicit uarg_base(type_registry& registry, T&&) : uarg_base{registry, type_list{}} {} @@ -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 > + template < typename T, typename Tp = std::decay_t > + requires(!uvalue_family) explicit uarg(type_registry& registry, T&& v) : uarg_base{registry, std::forward(v)} , data_{const_cast*>(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 > + template < typename T, typename Tp = std::decay_t > + requires(!uvalue_family) explicit uinst_base(type_registry& registry, T&&) : uinst_base{registry, type_list{}} {} @@ -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 > + template < typename T, typename Tp = std::decay_t > + requires(!uvalue_family) explicit uinst(type_registry& registry, T&& v) : uinst_base{registry, std::forward(v)} , data_{const_cast*>(std::addressof(v))} { // NOLINT(*-const-cast) diff --git a/headers/meta.hpp/meta_base.hpp b/headers/meta.hpp/meta_base.hpp index 4085cd7..a4756bf 100644 --- a/headers/meta.hpp/meta_base.hpp +++ b/headers/meta.hpp/meta_base.hpp @@ -72,9 +72,6 @@ namespace meta_hpp || std::is_same_v // || std::is_same_v // || std::is_same_v; // - - template < typename T > - concept non_uvalue_family = !uvalue_family; } } diff --git a/headers/meta.hpp/meta_detail/value_utilities/uarg.hpp b/headers/meta.hpp/meta_detail/value_utilities/uarg.hpp index 73ec2ba..dcf0aa9 100644 --- a/headers/meta.hpp/meta_detail/value_utilities/uarg.hpp +++ b/headers/meta.hpp/meta_detail/value_utilities/uarg.hpp @@ -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 > + template < typename T, typename Tp = std::decay_t > + requires(!uvalue_family) explicit uarg_base(type_registry& registry, T&&) : uarg_base{registry, type_list{}} {} @@ -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 > + template < typename T, typename Tp = std::decay_t > + requires(!uvalue_family) explicit uarg(type_registry& registry, T&& v) : uarg_base{registry, std::forward(v)} , data_{const_cast*>(std::addressof(v))} { // NOLINT(*-const-cast) diff --git a/headers/meta.hpp/meta_detail/value_utilities/uinst.hpp b/headers/meta.hpp/meta_detail/value_utilities/uinst.hpp index 4a47d9d..99b559f 100644 --- a/headers/meta.hpp/meta_detail/value_utilities/uinst.hpp +++ b/headers/meta.hpp/meta_detail/value_utilities/uinst.hpp @@ -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 > + template < typename T, typename Tp = std::decay_t > + requires(!uvalue_family) explicit uinst_base(type_registry& registry, T&&) : uinst_base{registry, type_list{}} {} @@ -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 > + template < typename T, typename Tp = std::decay_t > + requires(!uvalue_family) explicit uinst(type_registry& registry, T&& v) : uinst_base{registry, std::forward(v)} , data_{const_cast*>(std::addressof(v))} { // NOLINT(*-const-cast) diff --git a/headers/meta.hpp/meta_detail/value_utilities/utraits.hpp b/headers/meta.hpp/meta_detail/value_utilities/utraits.hpp index 42ff8ab..8b093d9 100644 --- a/headers/meta.hpp/meta_detail/value_utilities/utraits.hpp +++ b/headers/meta.hpp/meta_detail/value_utilities/utraits.hpp @@ -12,13 +12,13 @@ namespace meta_hpp::detail { template < typename T, typename Tp = std::decay_t > - concept arg_lvalue_ref_kind // - = (non_uvalue_family) // + concept arg_lvalue_ref_kind // + = (!uvalue_family) // &&(std::is_lvalue_reference_v); template < typename T, typename Tp = std::decay_t > - concept arg_rvalue_ref_kind // - = (non_uvalue_family) // + concept arg_rvalue_ref_kind // + = (!uvalue_family) // &&(!std::is_reference_v || std::is_rvalue_reference_v); } @@ -31,13 +31,13 @@ namespace meta_hpp::detail template < typename T, typename Tp = std::decay_t > concept inst_class_lvalue_ref_kind // - = (non_uvalue_family) // + = (!uvalue_family) // &&(std::is_lvalue_reference_v) // &&(std::is_class_v>>); template < typename T, typename Tp = std::decay_t > concept inst_class_rvalue_ref_kind // - = (non_uvalue_family) // + = (!uvalue_family) // &&(!std::is_reference_v || std::is_rvalue_reference_v) // &&(std::is_class_v>>); } diff --git a/headers/meta.hpp/meta_uresult.hpp b/headers/meta.hpp/meta_uresult.hpp index 1ff6f98..08f8ef2 100644 --- a/headers/meta.hpp/meta_uresult.hpp +++ b/headers/meta.hpp/meta_uresult.hpp @@ -83,8 +83,8 @@ namespace meta_hpp typename T, // typename Tp = std::decay_t, // typename = std::enable_if_t< // + !std::is_same_v && // !detail::is_in_place_type_v && // - detail::non_uvalue_family && // std::is_copy_constructible_v>> // uresult(T&& val); @@ -92,7 +92,7 @@ namespace meta_hpp typename T, // typename Tp = std::decay_t, // typename = std::enable_if_t< // - detail::non_uvalue_family && // + !std::is_same_v && // std::is_copy_constructible_v>> // uresult& operator=(T&& val); diff --git a/headers/meta.hpp/meta_uvalue.hpp b/headers/meta.hpp/meta_uvalue.hpp index 9123ad1..dd26d9d 100644 --- a/headers/meta.hpp/meta_uvalue.hpp +++ b/headers/meta.hpp/meta_uvalue.hpp @@ -26,8 +26,8 @@ namespace meta_hpp typename T, // typename Tp = std::decay_t, // typename = std::enable_if_t< // + !std::is_same_v && // !detail::is_in_place_type_v && // - detail::non_uvalue_family && // std::is_copy_constructible_v>> // uvalue(T&& val); @@ -35,7 +35,7 @@ namespace meta_hpp typename T, // typename Tp = std::decay_t, // typename = std::enable_if_t< // - detail::non_uvalue_family && // + !std::is_same_v && // std::is_copy_constructible_v>> // uvalue& operator=(T&& val);