On 12/27/2014 11:49 AM, Momchil Velikov wrote:
struct C {
       C(const C &);
};

struct X {
       operator C() const;
};

C a{X()};

The variable "a" is initialised by direct list-initialization
according to 8.5.4. [dcl.init.list] #3 and 13.3.1.7 [over.match.list].
As the class C does not have an initializer-list ctor, all the
constructors of C are tried with the elements of the initializer list
as arguments.

As I commented on the PR, the current G++ behavior is correct under the resolution of DR 1467.

Jason

Reply via email to