summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/utilities')
-rw-r--r--libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/type_identity.pass.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/type_identity.pass.cpp b/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/type_identity.pass.cpp
new file mode 100644
index 00000000000..079986685a1
--- /dev/null
+++ b/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/type_identity.pass.cpp
@@ -0,0 +1,40 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
+
+// type_traits
+
+// type_identity
+
+#include <type_traits>
+
+#include "test_macros.h"
+
+template <class T>
+void test_type_identity()
+{
+ static_assert((std::is_same<typename std::type_identity<T>::type, T>::value), "");
+ static_assert((std::is_same< std::type_identity_t<T>, T>::value), "");
+}
+
+int main()
+{
+ test_type_identity<void>();
+ test_type_identity<int>();
+ test_type_identity<const volatile int>();
+ test_type_identity<int*>();
+ test_type_identity< int[3]>();
+ test_type_identity<const int[3]>();
+
+ test_type_identity<void (*)()>();
+ test_type_identity<int(int) const>();
+ test_type_identity<int(int) volatile>();
+ test_type_identity<int(int) &>();
+ test_type_identity<int(int) &&>();
+}
OpenPOWER on IntegriCloud