On 06/18/13, Jonathan Wakely<jwakely....@gmail.com> wrote: On 18 June 2013 07:04, Ed Smith-Rowland wrote: > I understand that the literal operators for complex numbers for C++14 > faltered at least in part because of the perceived ugliness of the float > operator: > > constexpr complex<float> > operator"" i_f(); // fugly > > The obvious choice > constexpr complex<float> > operator"" if(); > > failed because 'if' is a keyword. The 'if' keyword can never be exposed in > this context either by usage in a literal or by explicit call. > > Allowing keywords as literal operator suffixes turns out to be a 6-liner if > gcc. I actually think *disallowing* them is a bit of a bug. (Not sure if > it was me or the standard).
The standard disallowed them, but that was changed by DR 1473 so you can define operator ""if now (with no whitespace between the string-literal and suffix, IIUC) See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3675.html#1473 IMHO you should implement exactly that resolution, not just a kluge to allow keywords. I did not see this DR and that it passed. I just heard "something was in the works". This resolution seems eminently sensible. I withdraw my kludge and will work on DR 1473 implementation. Thanks, Ed