On 06/03/2014 10:30 AM, Paolo Carlini wrote:
implementing the resolution seems rather straightforward, just check LOOKUP_ONLYCONVERTING in standard_conversion.
Yep. Though it would be better to return a bad_p conversion than none at all.
However, while playing with some additional tests outside bug & testsuite (similar to nullptr32.C), I noticed a latent issue: in case of base initializers we were setting anyway LOOKUP_ONLYCONVERTING in add_function_candidate
Right. In the case of
+ TDerived() + : TBase<T>(nullptr) { }
we have direct-initialization of TBase<T>, but the parameter of the TBase constructor is copy-initialized, so nullptr32.C is ill-formed; please drop this hunk of the patch.
Jason