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;
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;