1 // PR c++/57196 2 // { dg-require-effective-target c++11 } 3 4 #include <initializer_list> 5 6 template<class T> 7 struct set { 8 set() = default; setset9 set(std::initializer_list<T>){} 10 }; 11 12 struct string { stringstring13 string(const char*){} ~stringstring14 ~string(){} 15 }; 16 17 typedef decltype(sizeof(0)) size_t; 18 19 template <size_t> struct EqHelper { }; 20 21 int IsNullLiteralHelper(...); 22 Fn()23void Fn() { 24 EqHelper<sizeof IsNullLiteralHelper(set<int>{1})> eq1; // ok 25 EqHelper<sizeof IsNullLiteralHelper(set<string>())> eq2; // ok 26 EqHelper<sizeof IsNullLiteralHelper(set<string>{"foo"})> eq3; // error 27 } 28