#include "../misc/traits.h" #include #include #include #include using namespace std; using namespace Traits; struct SomeStruct { string foo; int bar; }; static_assert(!Bool::value, "Bool"); static_assert(Bool::value, "Bool"); static_assert(!Not>::value, "Not"); static_assert(!Any, Bool>::value, "Any: negative case"); static_assert(Any, Bool>::value, "Any: positive case"); static_assert(!All, Bool>::value, "All: negative case"); static_assert(All, Bool>::value, "All: positive case"); static_assert(!IsSpecializationOf::value, "IsSpecializationOf: negative case"); static_assert(IsSpecializationOf::value, "IsSpecializationOf: positive case"); static_assert(!IsIteratable::value, "IsIterator: negative case"); static_assert(!IsIteratable::value, "IsIterator: negative case"); static_assert(IsIteratable::value, "IsIterator: positive case"); static_assert(IsIteratable>::value, "IsIterator: positive case"); static_assert(IsIteratable>::value, "IsIterator: positive case"); static_assert(IsIteratable>::value, "IsIterator: positive case"); static_assert(IsIteratable>::value, "IsIterator: positive case"); static_assert(!IsCString::value, "IsCString: negative case"); static_assert(!IsCString::value, "IsCString: negative case"); static_assert(!IsCString::value, "IsCString: negative case"); static_assert(IsCString::value, "IsCString: positive case"); static_assert(IsCString::value, "IsCString: positive case"); static_assert(IsCString::value, "IsCString: positive case"); static_assert(!IsString::value, "IsString: negative case"); static_assert(!IsString::value, "IsString: negative case"); static_assert(IsString::value, "IsString: positive case"); static_assert(IsString::value, "IsCString: positive case"); static_assert(IsString::value, "IsCString: positive case");