// PR c++/50261 // { dg-require-effective-target c++11 } template struct ca { T elem[1]; ca(const T (&s)[1]): elem{{s}} { } // { dg-error "braces" } ca(const T (&s)[1],int): elem({{s}}) { } // { dg-error "paren|invalid" } ca(const T (&s)[1],char): elem(s) { } // { dg-error "array" } ca(const T (&s)[1],double): elem{s} { } // { dg-error "invalid" } ca(const T &v): elem{{v}} { } // { dg-error "braces" } ca(const T &v,int): elem{{{v}}} { } // { dg-error "braces" } ca(const T &v,char): elem{v} { } // OK ca(const T &v,double): elem({v}) { } // { dg-error "paren" } }; int main() { int a[1] = {0}; ca d(a); ca d1(a,1); ca d2(a,'2'); ca d3(a,3.0); ca e(a[0]); ca e1(a[0],1); ca e2(a[0],'2'); ca e3(a[0],3.0); }