Start using deducing this, needs more utilities work

This commit is contained in:
2025-02-25 00:08:02 +01:00
parent aa73023bee
commit a808626873
4 changed files with 12 additions and 23 deletions

View File

@ -9,8 +9,8 @@ build:windows --extra_toolchains=@@rules_cc++cc_configure_extension+local_confi
build:linux --repo_env=CC=clang
build:windows --cxxopt=-Xclang=-std=c++20
build:linux --cxxopt=-std=c++20
build:windows --cxxopt=-Xclang=-std=c++23
build:linux --cxxopt=-std=c++23
build --cxxopt=-Wall
build --cxxopt=-Wno-c++98-compat

View File

@ -193,11 +193,11 @@ template<typename T> concept is_integer = _is_integer_helper<un_cv_t<T>>::value;
template<typename T> concept is_enum = __is_enum(T);
template<typename T> struct is_uniquely_represented : false_type {};
template<is_integer T> struct is_uniquely_represented<T> : true_type {};
template<is_enum T> struct is_uniquely_represented<T> : true_type {};
template<> struct is_uniquely_represented<uint128_t> : true_type {};
template<> struct is_uniquely_represented<byte> : true_type {};
template<typename T> struct is_uniquely_represented : false_type {};
template<is_integer T> struct is_uniquely_represented<T> : true_type {};
template<is_enum T> struct is_uniquely_represented<T> : true_type {};
template<> struct is_uniquely_represented<uint128_t> : true_type {};
template<> struct is_uniquely_represented<byte> : true_type {};
template<typename T> concept uniquely_represented = is_uniquely_represented<un_cv_t<T>>::value;

View File

@ -365,23 +365,11 @@ public:
}
}
// @Todo(C++23) Deducing this
constexpr T&& value() &&
template<typename Self>
constexpr auto&& value(this Self&& self)
{
ASL_ASSERT_RELEASE(has_value());
return ASL_MOVE(m_payload).as_init_unsafe();
}
constexpr T& value() &
{
ASL_ASSERT_RELEASE(has_value());
return m_payload.as_init_unsafe();
}
constexpr const T& value() const&
{
ASL_ASSERT_RELEASE(has_value());
return m_payload.as_init_unsafe();
ASL_ASSERT_RELEASE(self.has_value());
return ASL_FWD(self).m_payload.as_init_unsafe();
}
template<typename U>

View File

@ -1 +1,2 @@
warning compare with 0 in format_float.cpp
add copy_cvref_t