5 # ifndef VCCC_OPTIONAL_INTERNAL_COPY_ASSIGNMENT_H_
6 # define VCCC_OPTIONAL_INTERNAL_COPY_ASSIGNMENT_H_
8 # include <type_traits>
16 template<
typename T,
bool v =
20 struct copy_assign : move_ctor<T> {
21 using base = move_ctor<T>;
26 struct copy_assign<T, false> : move_ctor<T> {
27 using base = move_ctor<T>;
30 copy_assign() =
default;
31 copy_assign(copy_assign
const&) =
default;
32 copy_assign(copy_assign &&) =
default;
33 copy_assign& operator=(copy_assign
const& other) {
38 this->val = other.val;
40 this->construct(other.val);
44 copy_assign& operator=(copy_assign &&) =
default;
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35