Re: [v3 PATCH] nonesuch is insufficiently useless (lwg2996)

2019-05-14 Thread Nina Dinka Ranns
That was fast :)
I’ll check the changelog for future reference.
Thanks,
Nina

On Tue, 14 May 2019 at 16:50, Jonathan Wakely  wrote:

> 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  
> >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{
>
>
>


Re: [v3 PATCH] nonesuch is insufficiently useless (lwg2996)

2019-05-14 Thread Jonathan Wakely

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  
   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{