Re: [v3 PATCH] Implement P0307R2, Making Optional Greater Equal Again.

2016-07-16 Thread Daniel Krügler
2016-07-13 20:32 GMT+02:00 Ville Voutilainen : > On 13 July 2016 at 21:25, Daniel Krügler wrote: >> How would you feel about the introduction of an internal trait >> __is_boolean_testable, that would test both is_convertible> bool> and is_constructible for now, so that we could >> reuse that at pl

Re: [v3 PATCH] Implement P0307R2, Making Optional Greater Equal Again.

2016-07-13 Thread Ville Voutilainen
On 13 July 2016 at 21:25, Daniel Krügler wrote: > How would you feel about the introduction of an internal trait > __is_boolean_testable, that would test both is_convertible bool> and is_constructible for now, so that we could > reuse that at places like these and others pointed out by LWG 2114? >

Re: [v3 PATCH] Implement P0307R2, Making Optional Greater Equal Again.

2016-07-13 Thread Daniel Krügler
2016-07-13 12:05 GMT+02:00 Ville Voutilainen : > On 13 July 2016 at 01:31, Jonathan Wakely wrote: >> On 11/07/16 23:41 +0300, Ville Voutilainen wrote: >>> >>> @@ -785,41 +785,60 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION >>> } >>> }; >>> >>> + template >>> +using __optional_relop_t = >>>

Re: [v3 PATCH] Implement P0307R2, Making Optional Greater Equal Again.

2016-07-13 Thread Jonathan Wakely
On 13/07/16 13:05 +0300, Ville Voutilainen wrote: Ha, that was indeed in just one place. See below. I made the above changes and also made converting assignment operators SFINAE. That SFINAE seems consistent with how constructors and relops work. And yes, there are still some members like emp

Re: [v3 PATCH] Implement P0307R2, Making Optional Greater Equal Again.

2016-07-13 Thread Ville Voutilainen
On 13 July 2016 at 13:05, Ville Voutilainen wrote: >> Dunno why this has _Tp const& rather than const _Tp&, could you fix it >> while you're in the file anyway? It's a bit confusing to have one >> place using a different style. > > Ha, that was indeed in just one place. Well, technically two, th

Re: [v3 PATCH] Implement P0307R2, Making Optional Greater Equal Again.

2016-07-13 Thread Ville Voutilainen
On 13 July 2016 at 01:31, Jonathan Wakely wrote: > On 11/07/16 23:41 +0300, Ville Voutilainen wrote: >> >> @@ -785,41 +785,60 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION >> } >> }; >> >> + template >> +using __optional_relop_t = >> +enable_if_t::value, bool>; > > > Should this be is_c

Re: [v3 PATCH] Implement P0307R2, Making Optional Greater Equal Again.

2016-07-12 Thread Jonathan Wakely
On 11/07/16 23:41 +0300, Ville Voutilainen wrote: @@ -785,41 +785,60 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } }; + template +using __optional_relop_t = +enable_if_t::value, bool>; Should this be is_convertible<_Tp, bool> instead? template -constexpr bool +constexp

[v3 PATCH] Implement P0307R2, Making Optional Greater Equal Again.

2016-07-11 Thread Ville Voutilainen
Tested on Linux-X64. The test adjustments are so that the tests are kept valid, which required adding a bunch of now-required relops to the test types. The new transparent-but-non-synthesizing aspects of the relops are tested separately. The constraints are a valid implementation of the current Re