diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2019-04-30 00:54:38 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2019-04-30 00:54:38 +0000 |
commit | 39084db328b3d3eeeaacb614f760c9bfe06e8240 (patch) | |
tree | 322b196e0180f42ddd7550253629267bf068aeb0 /libcxx/include/experimental | |
parent | fafbddc2756c66840595892810ad7cbb5f7ef547 (diff) | |
download | bcm5719-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_traits | 10 |
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> |