///////////////////////////////////////////////////////////////////////////// // Copyright (c) Electronic Arts Inc. All rights reserved. ///////////////////////////////////////////////////////////////////////////// #include "EASTLTest.h" #ifdef EA_COMPILER_CPP14_ENABLED #include "ConceptImpls.h" #include int TestGetTypeIndex() { using namespace eastl; int nErrorCount = 0; static_assert(meta::get_type_index_v == 0, "error"); static_assert(meta::get_type_index_v == 1, "error"); static_assert(meta::get_type_index_v == 2, "error"); static_assert(meta::get_type_index_v == 0, "error"); return nErrorCount; } int TestGetType() { using namespace eastl; int nErrorCount = 0; static_assert(is_same_v, char>, "error"); static_assert(is_same_v, int>, "error"); // static_assert(is_same_v, int>, "error"); static_assert(is_same_v, int>, "error"); return nErrorCount; } int TestTypeCount() { using namespace eastl; int nErrorCount = 0; static_assert(meta::type_count_v == 1, "error"); static_assert(meta::type_count_v == 1, "error"); static_assert(meta::type_count_v == 1, "error"); static_assert(meta::type_count_v == 3, "error"); static_assert(meta::type_count_v == 8, "error"); static_assert(meta::type_count_v == 7, "error"); static_assert(meta::type_count_v == 6, "error"); static_assert(meta::type_count_v == 5, "error"); static_assert(meta::type_count_v == 4, "error"); static_assert(meta::type_count_v == 2, "error"); return nErrorCount; } int TestDuplicateTypeCheck() { using namespace eastl; int nErrorCount = 0; static_assert( meta::duplicate_type_check_v, "error"); static_assert( meta::duplicate_type_check_v, "error"); static_assert( meta::duplicate_type_check_v, "error"); static_assert(!meta::duplicate_type_check_v, "error"); return nErrorCount; } int TestOverloadResolution() { using namespace eastl; using namespace eastl::meta; int nErrorCount = 0; static_assert(is_same_v>, int>, "error"); static_assert(is_same_v>, short>, "error"); static_assert(is_same_v>, long>, "error"); static_assert(is_same_v>, int>, "error"); static_assert(is_same_v>, int>, "error"); static_assert(is_same_v>, int>, "error"); static_assert(is_same_v>, int>, "error"); static_assert(is_same_v>, int>, "error"); static_assert(is_same_v>, int>, "error"); static_assert(is_same_v>, int>, "error"); return nErrorCount; } int TestMeta() { int nErrorCount = 0; nErrorCount += TestGetTypeIndex(); nErrorCount += TestGetType(); nErrorCount += TestTypeCount(); nErrorCount += TestDuplicateTypeCheck(); nErrorCount += TestOverloadResolution(); return nErrorCount; } #endif // EA_COMPILER_CPP14_ENABLED