1 // Test that conversion to std::initializer_list takes priority over other
2 // user-defined conversions.
3
4 // { dg-do link { target c++11 } }
5
6 #include <initializer_list>
7
8 struct string
9 {
stringstring10 string (const char *) {}
11 template <class Iter> string (Iter, Iter);
12 };
13
14 template <class T, class U>
15 struct pair
16 {
pairpair17 pair (T t, U u) {}
18 };
19
20 template<class T, class U>
21 struct map
22 {
23 void insert (pair<T,U>);
insertmap24 void insert (std::initializer_list<pair<T,U> >) {}
25 };
26
main()27 int main()
28 {
29 map<string,string> m;
30 m.insert({ {"this","that"}, {"me","you"} });
31 }
32