diff options
Diffstat (limited to 'EASTL/test/source/TestCppCXTypeTraits.cpp')
-rw-r--r-- | EASTL/test/source/TestCppCXTypeTraits.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/EASTL/test/source/TestCppCXTypeTraits.cpp b/EASTL/test/source/TestCppCXTypeTraits.cpp new file mode 100644 index 0000000..ab03aa7 --- /dev/null +++ b/EASTL/test/source/TestCppCXTypeTraits.cpp @@ -0,0 +1,35 @@ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) Electronic Arts Inc. All rights reserved. +///////////////////////////////////////////////////////////////////////////// + + +#include "EASTLTest.h" +#include <EASTL/type_traits.h> + +using namespace eastl; + +#if defined(__cplusplus_winrt) + ref class Foo + { + + }; +#endif + +int TestCppCXTypeTraits() +{ + int nErrorCount = 0; + + // We can only build this code if C++/CX is enabled +#if defined(__cplusplus_winrt) + { + Foo^ foo = ref new Foo(); + static_assert(eastl::is_pod<Foo^>::value == false, "Ref types are not POD"); + static_assert(eastl::is_trivially_destructible<Foo^>::value == false, "Ref types cannot be trivially destructible"); + static_assert(eastl::is_trivially_constructible<Foo^>::value == false, "Ref types cannot be trivially constructible"); + static_assert(eastl::is_trivially_copy_constructible<Foo^>::value == false, "Ref types cannot be trivially copyable"); + static_assert(eastl::is_trivially_copy_assignable<Foo^>::value == false, "Ref types cannot be trivially copyable"); + } +#endif + + return nErrorCount; +} |