13 #include <type_traits>
23 static_assert(std::is_destructible<T>::value,
"T : must be destructible");
24 static_assert(std::is_copy_constructible<T>::value,
"T : must be copy constructible");
25 static_assert(std::is_move_constructible<T>::value,
"T : must be move constructible");
26 static_assert(std::is_copy_assignable<T>::value,
"T : must be copy assignable");
27 static_assert(std::is_move_assignable<T>::value,
"T : must be move assignable");
29 return std::is_destructible<T>::value &&
30 std::is_copy_constructible<T>::value &&
31 std::is_move_constructible<T>::value &&
32 std::is_copy_assignable<T>::value &&
33 std::is_move_assignable<T>::value;
39 static_assert(fulfills_rule_of_5<T>(),
"T : must fulfill rule of 5");
40 static_assert(std::is_default_constructible<T>::value,
"T : must be default constructible");
42 return fulfills_rule_of_5<T>() &&
43 std::is_default_constructible<T>::value;
49 static_assert( (std::is_trivially_copy_constructible<T>::value && std::is_trivially_destructible<T>::value) ||
50 std::is_nothrow_move_constructible<T>::value,
51 "T : doesn't fulfill fast vector (trivially copy constructible " \
52 "and trivially destructible, or nothrow move constructible)");
54 return (std::is_trivially_copy_constructible<T>::value && std::is_trivially_destructible<T>::value) ||
55 std::is_nothrow_move_constructible<T>::value;
constexpr bool fulfills_fast_vector()
Definition: MacrosTest.h:47
constexpr bool fulfills_rule_of_5()
Definition: MacrosTest.h:21
constexpr bool fulfills_rule_of_6()
Definition: MacrosTest.h:37
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22