On 14/05/19 15:43 +0100, Nina Dinka Ranns wrote:
Tested on Linux x86_64
nonesuch is insufficiently useless (lwg2996)
2019-05-14 Nina Dinka Ranns <dinka.ra...@gmail.com>
nonesuch is insufficiently useless (lwg2996)
* include/std/type_traits
struct __nonesuch: added private base class to make __nonesuch
not an aggregate and removed deleted default constructor
* include/bits/stl_pair.h:
struct __nonesuch_no_braces: Removed
(operator=(const pair&)): Use __nonesuch instead of
__nonesuch_no_braces.
(operator=(pair&&)): Likewise
* include/std/tuple
(operator=(const tuple&)): Use __nonesuch instead of
__nonesuch_no_braces.
(operator=(tuple&&)): Likewise
* include/experimental/type_traits
struct nonesuch: added private base class to make nonesuch
not an aggregate and removed deleted default constructor
* testsuite/20_util/nonesuch/nonesuch.cc: New
* testsuite/experimental/type_traits/nonesuch.cc: New
Thanks!
Tested and committed, again with some changelog edits, and some whitespace
before the opening braces here ...
@@ -2769,8 +2769,8 @@
__call_is_nothrow_<_Fn, _Args...>>::type
{ };
- struct __nonesuch {
- __nonesuch() = delete;
+ struct __nonesuchbase{};
+ struct __nonesuch : private __nonesuchbase{