commit test missing from r276556
authorEric Fiselier <eric@efcs.ca>
Sun, 24 Jul 2016 08:16:37 +0000 (08:16 +0000)
committerEric Fiselier <eric@efcs.ca>
Sun, 24 Jul 2016 08:16:37 +0000 (08:16 +0000)
llvm-svn: 276558

libcxx/test/libcxx/utilities/utility/utility.inplace/__is_inplace_type.pass.cpp [new file with mode: 0644]

diff --git a/libcxx/test/libcxx/utilities/utility/utility.inplace/__is_inplace_type.pass.cpp b/libcxx/test/libcxx/utilities/utility/utility.inplace/__is_inplace_type.pass.cpp
new file mode 100644 (file)
index 0000000..bfa4c33
--- /dev/null
@@ -0,0 +1,27 @@
+//===----------------------------------------------------------------------===//
+//
+//                     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
+
+// <utility>
+
+// template <class Tp>
+// struct __is_inplace_type;
+
+#include <utility>
+#include <cassert>
+
+int main() {
+    static_assert(std::__is_inplace_type<std::in_place_t>::value, "");
+    static_assert(std::__is_inplace_type<std::in_place_type_t<int>>::value, "");
+    static_assert(std::__is_inplace_type<std::in_place_index_t<static_cast<size_t>(-1)>>::value, "");
+    static_assert(!std::__is_inplace_type<std::in_place_tag>::value, "");
+    static_assert(!std::__is_inplace_type<void*>::value, "");
+    static_assert(!std::__is_inplace_type<std::in_place_tag(&)(...)>::value, "");
+}
\ No newline at end of file