39 #include <type_traits>
49 static_assert(std::is_destructible<T>::value,
"T : must be destructible");
50 static_assert(std::is_copy_constructible<T>::value,
"T : must be copy constructible");
51 static_assert(std::is_move_constructible<T>::value,
"T : must be move constructible");
52 static_assert(std::is_copy_assignable<T>::value,
"T : must be copy assignable");
53 static_assert(std::is_move_assignable<T>::value,
"T : must be move assignable");
55 return std::is_destructible<T>::value &&
56 std::is_copy_constructible<T>::value &&
57 std::is_move_constructible<T>::value &&
58 std::is_copy_assignable<T>::value &&
59 std::is_move_assignable<T>::value;
65 static_assert(fulfills_rule_of_5<T>(),
"T : must fulfill rule of 5");
66 static_assert(std::is_default_constructible<T>::value,
"T : must be default constructible");
68 return fulfills_rule_of_5<T>() &&
69 std::is_default_constructible<T>::value;
75 static_assert( (std::is_trivially_copy_constructible<T>::value && std::is_trivially_destructible<T>::value) ||
76 std::is_nothrow_move_constructible<T>::value,
77 "T : doesn't fulfill fast vector (trivially copy constructible " \
78 "and trivially destructible, or nothrow move constructible)");
80 return (std::is_trivially_copy_constructible<T>::value && std::is_trivially_destructible<T>::value) ||
81 std::is_nothrow_move_constructible<T>::value;
constexpr bool fulfills_fast_vector()
Definition: MacrosTest.h:73
constexpr bool fulfills_rule_of_5()
Definition: MacrosTest.h:47
constexpr bool fulfills_rule_of_6()
Definition: MacrosTest.h:63
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:48