40 template<
typename T,
typename =
void>
41 inline constexpr bool ReallyCopyConstructible =
42 requires(
const T& src) { T{src}; };
45 inline constexpr bool ReallyCopyConstructible<
47 Container<std::remove_cvref_t<T>> &&
48 !View<std::remove_cvref_t<T>>
51 requires(
const T& src) { T{src}; } &&
52 ReallyCopyConstructible<typename std::remove_cvref_t<T>::value_type>;
54 template<
typename T,
typename =
void>
55 inline constexpr bool ReallyCopyAssignable =
56 requires(T& dest,
const T& src) { dest = src; };
59 inline constexpr bool ReallyCopyAssignable<
61 Container<std::remove_cvref_t<T>> &&
62 !View<std::remove_cvref_t<T>>
65 requires(T& dest,
const T& src) { dest = src; } &&
66 ReallyCopyAssignable<typename std::remove_cvref_t<T>::value_type>;
Type that can actually be copy-assigned.
Definition object_semantics.hxx:165
Type that can actually be copy-constructed.
Definition object_semantics.hxx:136
Both CopyConstructible and CopyAssignable.
Definition object_semantics.hxx:237
Type constructible from an empty initializer (T{} / T()).
Definition object_semantics.hxx:103
Both MoveConstructible and MoveAssignable.
Definition object_semantics.hxx:249
Type that can be move-assigned (operator=(T&&)).
Definition object_semantics.hxx:213
Type that can be move-constructed.
Definition object_semantics.hxx:189
Type that can be swapped with std::swap (std::is_swappable).
Definition object_semantics.hxx:261
CopyAssignable with a trivial copy-assignment operator.
Definition object_semantics.hxx:177
CopyConstructible with a trivial copy constructor.
Definition object_semantics.hxx:148
Type that may be copied with memcpy / as-if memcpy.
Definition object_semantics.hxx:79
DefaultConstructible with a trivial default constructor.
Definition object_semantics.hxx:115
Type with a trivial destructor.
Definition object_semantics.hxx:91
MoveAssignable with a trivial move-assignment operator.
Definition object_semantics.hxx:225
MoveConstructible with a trivial move constructor.
Definition object_semantics.hxx:201
Root namespace of the StormByte suite.