diff --git a/develop/singles/headers/meta.hpp/meta_all.hpp b/develop/singles/headers/meta.hpp/meta_all.hpp index 05705dc..724c7b8 100644 --- a/develop/singles/headers/meta.hpp/meta_all.hpp +++ b/develop/singles/headers/meta.hpp/meta_all.hpp @@ -3557,9 +3557,9 @@ namespace meta_hpp ~uerror() = default; uerror(uerror&&) = default; - uerror(const uerror&) = default; - uerror& operator=(uerror&&) = default; + + uerror(const uerror&) = default; uerror& operator=(const uerror&) = default; explicit uerror(error_code error) noexcept; @@ -3608,9 +3608,9 @@ namespace meta_hpp ~uresult() = default; uresult(uresult&&) = default; - uresult(const uresult&) = delete; - uresult& operator=(uresult&&) = default; + + uresult(const uresult&) = delete; uresult& operator=(const uresult&) = delete; explicit(false) uresult(uerror error) noexcept; @@ -3619,38 +3619,36 @@ namespace meta_hpp uresult& operator=(uerror error) noexcept; uresult& operator=(uvalue value) noexcept; - template < // - typename T, // - typename Tp = std::decay_t, // - typename = std::enable_if_t< // - !uvalue_family && // - !detail::is_in_place_type_v && // - std::is_constructible_v>> // + template < // + typename T, // + typename = std::enable_if_t< // + !uvalue_family> && // + !detail::is_in_place_type_v> && // + std::is_constructible_v, T>>> // uresult(T&& val); - template < // - typename T, // - typename Tp = std::decay_t, // - typename = std::enable_if_t< // - !uvalue_family && // - std::is_constructible_v>> // + template < // + typename T, // + typename = std::enable_if_t< // + !uvalue_family> && // + std::is_constructible_v, T>>> // uresult& operator=(T&& val); - template < typename T, typename... Args, typename Tp = std::decay_t > - requires std::is_constructible_v // + template < typename T, typename... Args > + requires std::is_constructible_v, Args...> explicit uresult(std::in_place_type_t, Args&&... args); - template < typename T, typename U, typename... Args, typename Tp = std::decay_t > - requires std::is_constructible_v&, Args...> // + template < typename T, typename U, typename... Args > + requires std::is_constructible_v, std::initializer_list&, Args...> explicit uresult(std::in_place_type_t, std::initializer_list ilist, Args&&... args); - template < typename T, typename... Args, typename Tp = std::decay_t > - requires std::is_constructible_v // - Tp& emplace(Args&&... args); + template < typename T, typename... Args > + requires std::is_constructible_v, Args...> + std::decay_t& emplace(Args&&... args); - template < typename T, typename U, typename... Args, typename Tp = std::decay_t > - requires std::is_constructible_v&, Args...> // - Tp& emplace(std::initializer_list ilist, Args&&... args); + template < typename T, typename U, typename... Args > + requires std::is_constructible_v, std::initializer_list&, Args...> + std::decay_t& emplace(std::initializer_list ilist, Args&&... args); [[nodiscard]] bool has_error() const noexcept; [[nodiscard]] bool has_value() const noexcept; @@ -10812,39 +10810,39 @@ namespace meta_hpp return *this; } - template < typename T, typename Tp, typename > + template < typename T, typename > uresult::uresult(T&& val) : value_{std::forward(val)} {} - template < typename T, typename Tp, typename > + template < typename T, typename > uresult& uresult::operator=(T&& val) { value_ = std::forward(val); error_ = error_code::no_error; return *this; } - template < typename T, typename... Args, typename Tp > - requires std::is_constructible_v // + template < typename T, typename... Args > + requires std::is_constructible_v, Args...> // uresult::uresult(std::in_place_type_t, Args&&... args) : value_{std::in_place_type, std::forward(args)...} {} - template < typename T, typename U, typename... Args, typename Tp > - requires std::is_constructible_v&, Args...> // + template < typename T, typename U, typename... Args > + requires std::is_constructible_v, std::initializer_list&, Args...> // uresult::uresult(std::in_place_type_t, std::initializer_list ilist, Args&&... args) : value_{std::in_place_type, ilist, std::forward(args)...} {} - template < typename T, typename... Args, typename Tp > - requires std::is_constructible_v // - Tp& uresult::emplace(Args&&... args) { - Tp& val{value_.emplace(std::forward(args)...)}; + template < typename T, typename... Args > + requires std::is_constructible_v, Args...> // + std::decay_t& uresult::emplace(Args&&... args) { + std::decay_t& val{value_.emplace>(std::forward(args)...)}; error_ = error_code::no_error; return val; } - template < typename T, typename U, typename... Args, typename Tp > - requires std::is_constructible_v&, Args...> // - Tp& uresult::emplace(std::initializer_list ilist, Args&&... args) { - Tp& val{value_.emplace(ilist, std::forward(args)...)}; + template < typename T, typename U, typename... Args > + requires std::is_constructible_v, std::initializer_list&, Args...> // + std::decay_t& uresult::emplace(std::initializer_list ilist, Args&&... args) { + std::decay_t& val{value_.emplace>(ilist, std::forward(args)...)}; error_ = error_code::no_error; return val; } diff --git a/headers/meta.hpp/meta_uresult.hpp b/headers/meta.hpp/meta_uresult.hpp index 6b693f0..4908b74 100644 --- a/headers/meta.hpp/meta_uresult.hpp +++ b/headers/meta.hpp/meta_uresult.hpp @@ -17,9 +17,9 @@ namespace meta_hpp ~uerror() = default; uerror(uerror&&) = default; - uerror(const uerror&) = default; - uerror& operator=(uerror&&) = default; + + uerror(const uerror&) = default; uerror& operator=(const uerror&) = default; explicit uerror(error_code error) noexcept; @@ -68,9 +68,9 @@ namespace meta_hpp ~uresult() = default; uresult(uresult&&) = default; - uresult(const uresult&) = delete; - uresult& operator=(uresult&&) = default; + + uresult(const uresult&) = delete; uresult& operator=(const uresult&) = delete; explicit(false) uresult(uerror error) noexcept; @@ -79,38 +79,36 @@ namespace meta_hpp uresult& operator=(uerror error) noexcept; uresult& operator=(uvalue value) noexcept; - template < // - typename T, // - typename Tp = std::decay_t, // - typename = std::enable_if_t< // - !uvalue_family && // - !detail::is_in_place_type_v && // - std::is_constructible_v>> // + template < // + typename T, // + typename = std::enable_if_t< // + !uvalue_family> && // + !detail::is_in_place_type_v> && // + std::is_constructible_v, T>>> // uresult(T&& val); - template < // - typename T, // - typename Tp = std::decay_t, // - typename = std::enable_if_t< // - !uvalue_family && // - std::is_constructible_v>> // + template < // + typename T, // + typename = std::enable_if_t< // + !uvalue_family> && // + std::is_constructible_v, T>>> // uresult& operator=(T&& val); - template < typename T, typename... Args, typename Tp = std::decay_t > - requires std::is_constructible_v // + template < typename T, typename... Args > + requires std::is_constructible_v, Args...> explicit uresult(std::in_place_type_t, Args&&... args); - template < typename T, typename U, typename... Args, typename Tp = std::decay_t > - requires std::is_constructible_v&, Args...> // + template < typename T, typename U, typename... Args > + requires std::is_constructible_v, std::initializer_list&, Args...> explicit uresult(std::in_place_type_t, std::initializer_list ilist, Args&&... args); - template < typename T, typename... Args, typename Tp = std::decay_t > - requires std::is_constructible_v // - Tp& emplace(Args&&... args); + template < typename T, typename... Args > + requires std::is_constructible_v, Args...> + std::decay_t& emplace(Args&&... args); - template < typename T, typename U, typename... Args, typename Tp = std::decay_t > - requires std::is_constructible_v&, Args...> // - Tp& emplace(std::initializer_list ilist, Args&&... args); + template < typename T, typename U, typename... Args > + requires std::is_constructible_v, std::initializer_list&, Args...> + std::decay_t& emplace(std::initializer_list ilist, Args&&... args); [[nodiscard]] bool has_error() const noexcept; [[nodiscard]] bool has_value() const noexcept; diff --git a/headers/meta.hpp/meta_uresult/uresult.hpp b/headers/meta.hpp/meta_uresult/uresult.hpp index 82be194..64cbe93 100644 --- a/headers/meta.hpp/meta_uresult/uresult.hpp +++ b/headers/meta.hpp/meta_uresult/uresult.hpp @@ -71,39 +71,39 @@ namespace meta_hpp return *this; } - template < typename T, typename Tp, typename > + template < typename T, typename > uresult::uresult(T&& val) : value_{std::forward(val)} {} - template < typename T, typename Tp, typename > + template < typename T, typename > uresult& uresult::operator=(T&& val) { value_ = std::forward(val); error_ = error_code::no_error; return *this; } - template < typename T, typename... Args, typename Tp > - requires std::is_constructible_v // + template < typename T, typename... Args > + requires std::is_constructible_v, Args...> // uresult::uresult(std::in_place_type_t, Args&&... args) : value_{std::in_place_type, std::forward(args)...} {} - template < typename T, typename U, typename... Args, typename Tp > - requires std::is_constructible_v&, Args...> // + template < typename T, typename U, typename... Args > + requires std::is_constructible_v, std::initializer_list&, Args...> // uresult::uresult(std::in_place_type_t, std::initializer_list ilist, Args&&... args) : value_{std::in_place_type, ilist, std::forward(args)...} {} - template < typename T, typename... Args, typename Tp > - requires std::is_constructible_v // - Tp& uresult::emplace(Args&&... args) { - Tp& val{value_.emplace(std::forward(args)...)}; + template < typename T, typename... Args > + requires std::is_constructible_v, Args...> // + std::decay_t& uresult::emplace(Args&&... args) { + std::decay_t& val{value_.emplace>(std::forward(args)...)}; error_ = error_code::no_error; return val; } - template < typename T, typename U, typename... Args, typename Tp > - requires std::is_constructible_v&, Args...> // - Tp& uresult::emplace(std::initializer_list ilist, Args&&... args) { - Tp& val{value_.emplace(ilist, std::forward(args)...)}; + template < typename T, typename U, typename... Args > + requires std::is_constructible_v, std::initializer_list&, Args...> // + std::decay_t& uresult::emplace(std::initializer_list ilist, Args&&... args) { + std::decay_t& val{value_.emplace>(ilist, std::forward(args)...)}; error_ = error_code::no_error; return val; }