1 #include "../misc/traits.h" 3 #include <forward_list> 33 static_assert(!IsIteratable<int>::value,
"IsIterator: negative case");
34 static_assert(!IsIteratable<SomeStruct>::value,
"IsIterator: negative case");
35 static_assert(IsIteratable<string>::value,
"IsIterator: positive case");
36 static_assert(IsIteratable<vector<int>>::value,
"IsIterator: positive case");
37 static_assert(IsIteratable<list<string>>::value,
"IsIterator: positive case");
38 static_assert(IsIteratable<map<string, string>>::value,
"IsIterator: positive case");
39 static_assert(IsIteratable<initializer_list<double>>::value,
"IsIterator: positive case");
40 static_assert(!HasSize<SomeStruct>::value,
"HasSize: negative case");
41 static_assert(!HasSize<forward_list<SomeStruct>>::value,
"HasSize: negative case");
42 static_assert(HasSize<vector<SomeStruct>>::value,
"HasSize: positive case");
43 static_assert(HasSize<string>::value,
"HasSize: positive case");
44 static_assert(HasSize<CountableStruct>::value,
"HasSize: positive case");
45 static_assert(!IsReservable<list<SomeStruct>>::value,
"HasSize: negative case");
46 static_assert(IsReservable<vector<SomeStruct>>::value,
"HasSize: positive case");
49 static_assert(!
IsCString<
int[]>::value,
"IsCString: negative case");
51 static_assert(
IsCString<
char[]>::value,
"IsCString: positive case");
Contains traits for conveniently exploiting SFINAE.