concepts: add constructible_from
This commit is contained in:
parent
6a15651694
commit
df924f049b
10
concepts.hpp
10
concepts.hpp
@ -34,9 +34,14 @@ namespace cruft::concepts {
|
||||
template <typename T>
|
||||
concept unsigned_integral = integral<T> && std::is_unsigned_v<T>;
|
||||
|
||||
template <typename T>
|
||||
concept destructible = std::is_nothrow_destructible_v<T>;
|
||||
|
||||
template <class T, typename ...ArgsT>
|
||||
concept constructible_from = destructible<T> && std::is_constructible_v<T, ArgsT...>;
|
||||
|
||||
template <class T>
|
||||
concept default_constructible = std::is_default_constructible_v<T>;
|
||||
concept default_constructible = constructible_from<T>;
|
||||
|
||||
template <class T>
|
||||
concept copy_constructible = std::is_copy_constructible_v<T>;
|
||||
@ -44,9 +49,6 @@ namespace cruft::concepts {
|
||||
template <class T>
|
||||
concept move_constructible = std::is_move_constructible_v<T>;
|
||||
|
||||
template <typename T>
|
||||
concept destructible = std::is_nothrow_destructible_v<T>;
|
||||
|
||||
|
||||
template <typename A, typename B>
|
||||
concept same_as = std::is_same_v<A, B> and std::is_same_v<B, A>;
|
||||
|
Loading…
Reference in New Issue
Block a user