Re: [PATCH] PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment

2018-08-20 Thread Jonathan Wakely
On 17/08/18 19:54 +0100, Jonathan Wakely wrote: On 17/08/18 19:01 +0100, Jonathan Wakely wrote: On 17/08/18 18:52 +0100, Jonathan Wakely wrote: + // The tag parameter ensures that in nested tuples each __tuple_base + // is a different type and can use the empty base-class optimisation. + tem

Re: [PATCH] PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment

2018-08-17 Thread Jonathan Wakely
On 17/08/18 19:01 +0100, Jonathan Wakely wrote: On 17/08/18 18:52 +0100, Jonathan Wakely wrote: + // The tag parameter ensures that in nested tuples each __tuple_base + // is a different type and can use the empty base-class optimisation. + template +class __tuple_base Specifically, thi

Re: [PATCH] PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment

2018-08-17 Thread Jonathan Wakely
On 17/08/18 18:52 +0100, Jonathan Wakely wrote: + // The tag parameter ensures that in nested tuples each __tuple_base + // is a different type and can use the empty base-class optimisation. + template +class __tuple_base Specifically, this would fail if __tuple_base was not a class temp

[PATCH] PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment

2018-08-17 Thread Jonathan Wakely
PR libstdc++/86963 * include/std/tuple (__tuple_base): New class template with deleted copy assignment operator. (tuple, tuple<_T1, _T2>): Derive from __tuple_base so that implicit copy/move assignment operator will be deleted/suppressed. (tuple::__a