mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-15 03:45:30 +07:00
cleanup uresult api
This commit is contained in:
@@ -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<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
!uvalue_family<Tp> && //
|
||||
!detail::is_in_place_type_v<Tp> && //
|
||||
std::is_constructible_v<Tp, T>>> //
|
||||
template < //
|
||||
typename T, //
|
||||
typename = std::enable_if_t< //
|
||||
!uvalue_family<std::decay_t<T>> && //
|
||||
!detail::is_in_place_type_v<std::decay_t<T>> && //
|
||||
std::is_constructible_v<std::decay_t<T>, T>>> //
|
||||
uresult(T&& val);
|
||||
|
||||
template < //
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
!uvalue_family<Tp> && //
|
||||
std::is_constructible_v<Tp, T>>> //
|
||||
template < //
|
||||
typename T, //
|
||||
typename = std::enable_if_t< //
|
||||
!uvalue_family<std::decay_t<T>> && //
|
||||
std::is_constructible_v<std::decay_t<T>, T>>> //
|
||||
uresult& operator=(T&& val);
|
||||
|
||||
template < typename T, typename... Args, typename Tp = std::decay_t<T> >
|
||||
requires std::is_constructible_v<Tp, Args...> //
|
||||
template < typename T, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, Args...>
|
||||
explicit uresult(std::in_place_type_t<T>, Args&&... args);
|
||||
|
||||
template < typename T, typename U, typename... Args, typename Tp = std::decay_t<T> >
|
||||
requires std::is_constructible_v<Tp, std::initializer_list<U>&, Args...> //
|
||||
template < typename T, typename U, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, std::initializer_list<U>&, Args...>
|
||||
explicit uresult(std::in_place_type_t<T>, std::initializer_list<U> ilist, Args&&... args);
|
||||
|
||||
template < typename T, typename... Args, typename Tp = std::decay_t<T> >
|
||||
requires std::is_constructible_v<Tp, Args...> //
|
||||
Tp& emplace(Args&&... args);
|
||||
template < typename T, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, Args...>
|
||||
std::decay_t<T>& emplace(Args&&... args);
|
||||
|
||||
template < typename T, typename U, typename... Args, typename Tp = std::decay_t<T> >
|
||||
requires std::is_constructible_v<Tp, std::initializer_list<U>&, Args...> //
|
||||
Tp& emplace(std::initializer_list<U> ilist, Args&&... args);
|
||||
template < typename T, typename U, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, std::initializer_list<U>&, Args...>
|
||||
std::decay_t<T>& emplace(std::initializer_list<U> 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<T>(val)} {}
|
||||
|
||||
template < typename T, typename Tp, typename >
|
||||
template < typename T, typename >
|
||||
uresult& uresult::operator=(T&& val) {
|
||||
value_ = std::forward<T>(val);
|
||||
error_ = error_code::no_error;
|
||||
return *this;
|
||||
}
|
||||
|
||||
template < typename T, typename... Args, typename Tp >
|
||||
requires std::is_constructible_v<Tp, Args...> //
|
||||
template < typename T, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, Args...> //
|
||||
uresult::uresult(std::in_place_type_t<T>, Args&&... args)
|
||||
: value_{std::in_place_type<T>, std::forward<Args>(args)...} {}
|
||||
|
||||
template < typename T, typename U, typename... Args, typename Tp >
|
||||
requires std::is_constructible_v<Tp, std::initializer_list<U>&, Args...> //
|
||||
template < typename T, typename U, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, std::initializer_list<U>&, Args...> //
|
||||
uresult::uresult(std::in_place_type_t<T>, std::initializer_list<U> ilist, Args&&... args)
|
||||
: value_{std::in_place_type<T>, ilist, std::forward<Args>(args)...} {}
|
||||
|
||||
template < typename T, typename... Args, typename Tp >
|
||||
requires std::is_constructible_v<Tp, Args...> //
|
||||
Tp& uresult::emplace(Args&&... args) {
|
||||
Tp& val{value_.emplace<Tp>(std::forward<Args>(args)...)};
|
||||
template < typename T, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, Args...> //
|
||||
std::decay_t<T>& uresult::emplace(Args&&... args) {
|
||||
std::decay_t<T>& val{value_.emplace<std::decay_t<T>>(std::forward<Args>(args)...)};
|
||||
error_ = error_code::no_error;
|
||||
return val;
|
||||
}
|
||||
|
||||
template < typename T, typename U, typename... Args, typename Tp >
|
||||
requires std::is_constructible_v<Tp, std::initializer_list<U>&, Args...> //
|
||||
Tp& uresult::emplace(std::initializer_list<U> ilist, Args&&... args) {
|
||||
Tp& val{value_.emplace<Tp>(ilist, std::forward<Args>(args)...)};
|
||||
template < typename T, typename U, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, std::initializer_list<U>&, Args...> //
|
||||
std::decay_t<T>& uresult::emplace(std::initializer_list<U> ilist, Args&&... args) {
|
||||
std::decay_t<T>& val{value_.emplace<std::decay_t<T>>(ilist, std::forward<Args>(args)...)};
|
||||
error_ = error_code::no_error;
|
||||
return val;
|
||||
}
|
||||
|
||||
@@ -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<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
!uvalue_family<Tp> && //
|
||||
!detail::is_in_place_type_v<Tp> && //
|
||||
std::is_constructible_v<Tp, T>>> //
|
||||
template < //
|
||||
typename T, //
|
||||
typename = std::enable_if_t< //
|
||||
!uvalue_family<std::decay_t<T>> && //
|
||||
!detail::is_in_place_type_v<std::decay_t<T>> && //
|
||||
std::is_constructible_v<std::decay_t<T>, T>>> //
|
||||
uresult(T&& val);
|
||||
|
||||
template < //
|
||||
typename T, //
|
||||
typename Tp = std::decay_t<T>, //
|
||||
typename = std::enable_if_t< //
|
||||
!uvalue_family<Tp> && //
|
||||
std::is_constructible_v<Tp, T>>> //
|
||||
template < //
|
||||
typename T, //
|
||||
typename = std::enable_if_t< //
|
||||
!uvalue_family<std::decay_t<T>> && //
|
||||
std::is_constructible_v<std::decay_t<T>, T>>> //
|
||||
uresult& operator=(T&& val);
|
||||
|
||||
template < typename T, typename... Args, typename Tp = std::decay_t<T> >
|
||||
requires std::is_constructible_v<Tp, Args...> //
|
||||
template < typename T, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, Args...>
|
||||
explicit uresult(std::in_place_type_t<T>, Args&&... args);
|
||||
|
||||
template < typename T, typename U, typename... Args, typename Tp = std::decay_t<T> >
|
||||
requires std::is_constructible_v<Tp, std::initializer_list<U>&, Args...> //
|
||||
template < typename T, typename U, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, std::initializer_list<U>&, Args...>
|
||||
explicit uresult(std::in_place_type_t<T>, std::initializer_list<U> ilist, Args&&... args);
|
||||
|
||||
template < typename T, typename... Args, typename Tp = std::decay_t<T> >
|
||||
requires std::is_constructible_v<Tp, Args...> //
|
||||
Tp& emplace(Args&&... args);
|
||||
template < typename T, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, Args...>
|
||||
std::decay_t<T>& emplace(Args&&... args);
|
||||
|
||||
template < typename T, typename U, typename... Args, typename Tp = std::decay_t<T> >
|
||||
requires std::is_constructible_v<Tp, std::initializer_list<U>&, Args...> //
|
||||
Tp& emplace(std::initializer_list<U> ilist, Args&&... args);
|
||||
template < typename T, typename U, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, std::initializer_list<U>&, Args...>
|
||||
std::decay_t<T>& emplace(std::initializer_list<U> ilist, Args&&... args);
|
||||
|
||||
[[nodiscard]] bool has_error() const noexcept;
|
||||
[[nodiscard]] bool has_value() const noexcept;
|
||||
|
||||
@@ -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<T>(val)} {}
|
||||
|
||||
template < typename T, typename Tp, typename >
|
||||
template < typename T, typename >
|
||||
uresult& uresult::operator=(T&& val) {
|
||||
value_ = std::forward<T>(val);
|
||||
error_ = error_code::no_error;
|
||||
return *this;
|
||||
}
|
||||
|
||||
template < typename T, typename... Args, typename Tp >
|
||||
requires std::is_constructible_v<Tp, Args...> //
|
||||
template < typename T, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, Args...> //
|
||||
uresult::uresult(std::in_place_type_t<T>, Args&&... args)
|
||||
: value_{std::in_place_type<T>, std::forward<Args>(args)...} {}
|
||||
|
||||
template < typename T, typename U, typename... Args, typename Tp >
|
||||
requires std::is_constructible_v<Tp, std::initializer_list<U>&, Args...> //
|
||||
template < typename T, typename U, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, std::initializer_list<U>&, Args...> //
|
||||
uresult::uresult(std::in_place_type_t<T>, std::initializer_list<U> ilist, Args&&... args)
|
||||
: value_{std::in_place_type<T>, ilist, std::forward<Args>(args)...} {}
|
||||
|
||||
template < typename T, typename... Args, typename Tp >
|
||||
requires std::is_constructible_v<Tp, Args...> //
|
||||
Tp& uresult::emplace(Args&&... args) {
|
||||
Tp& val{value_.emplace<Tp>(std::forward<Args>(args)...)};
|
||||
template < typename T, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, Args...> //
|
||||
std::decay_t<T>& uresult::emplace(Args&&... args) {
|
||||
std::decay_t<T>& val{value_.emplace<std::decay_t<T>>(std::forward<Args>(args)...)};
|
||||
error_ = error_code::no_error;
|
||||
return val;
|
||||
}
|
||||
|
||||
template < typename T, typename U, typename... Args, typename Tp >
|
||||
requires std::is_constructible_v<Tp, std::initializer_list<U>&, Args...> //
|
||||
Tp& uresult::emplace(std::initializer_list<U> ilist, Args&&... args) {
|
||||
Tp& val{value_.emplace<Tp>(ilist, std::forward<Args>(args)...)};
|
||||
template < typename T, typename U, typename... Args >
|
||||
requires std::is_constructible_v<std::decay_t<T>, std::initializer_list<U>&, Args...> //
|
||||
std::decay_t<T>& uresult::emplace(std::initializer_list<U> ilist, Args&&... args) {
|
||||
std::decay_t<T>& val{value_.emplace<std::decay_t<T>>(ilist, std::forward<Args>(args)...)};
|
||||
error_ = error_code::no_error;
|
||||
return val;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user