summaryrefslogtreecommitdiffstats
path: root/libcxx/include/experimental
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2019-04-30 00:54:38 +0000
committerMarshall Clow <mclow.lists@gmail.com>2019-04-30 00:54:38 +0000
commit39084db328b3d3eeeaacb614f760c9bfe06e8240 (patch)
tree322b196e0180f42ddd7550253629267bf068aeb0 /libcxx/include/experimental
parentfafbddc2756c66840595892810ad7cbb5f7ef547 (diff)
downloadbcm5719-llvm-39084db328b3d3eeeaacb614f760c9bfe06e8240.tar.gz
bcm5719-llvm-39084db328b3d3eeeaacb614f760c9bfe06e8240.zip
Implement LWG 2960: nonesuch is insufficiently useless
llvm-svn: 359526
Diffstat (limited to 'libcxx/include/experimental')
-rw-r--r--libcxx/include/experimental/type_traits10
1 files changed, 5 insertions, 5 deletions
diff --git a/libcxx/include/experimental/type_traits b/libcxx/include/experimental/type_traits
index 3127c0ea933..19466e9a5a5 100644
--- a/libcxx/include/experimental/type_traits
+++ b/libcxx/include/experimental/type_traits
@@ -72,6 +72,7 @@ inline namespace fundamentals_v1 {
#if _LIBCPP_STD_VER > 11
+#include <initializer_list>
#include <type_traits>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
@@ -104,11 +105,10 @@ using raw_invocation_type_t = typename raw_invocation_type<_Tp>::type;
// 3.3.4, Detection idiom
template <class...> using void_t = void;
-struct nonesuch {
- nonesuch() = delete;
- ~nonesuch() = delete;
- nonesuch (nonesuch const&) = delete;
- void operator=(nonesuch const&) = delete;
+struct nonesuch : private _VSTD::__nat { // make nonesuch "not an aggregate"
+ ~nonesuch() = delete;
+ nonesuch (nonesuch const&) = delete;
+ void operator=(nonesuch const&) = delete;
};
template <class _Default, class _AlwaysVoid, template <class...> class _Op, class... _Args>
OpenPOWER on IntegriCloud