#include <iostream>
#include <initializer_list>
struct A {
A(const std::initializer_list<int>&) { puts("initializer_list<int>"); } // (1)
A(const std::initializer_list<float>&) { puts("initializer_list<float>"); } // (2)
A(double) { puts("A(double)"); } // (3)
};
int main() {
A var{ 1.1 };
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KCnN0cnVjdCBBIHsKCUEoY29uc3Qgc3RkOjppbml0aWFsaXplcl9saXN0PGludD4mKSB7IHB1dHMoImluaXRpYWxpemVyX2xpc3Q8aW50PiIpOyB9CQkvLyAoMSkKCUEoY29uc3Qgc3RkOjppbml0aWFsaXplcl9saXN0PGZsb2F0PiYpIHsgcHV0cygiaW5pdGlhbGl6ZXJfbGlzdDxmbG9hdD4iKTsgfQkvLyAoMikKCUEoZG91YmxlKSB7IHB1dHMoIkEoZG91YmxlKSIpOyB9CQkJCQkJCQkJCQkvLyAoMykKfTsKCmludCBtYWluKCkgewoJQSB2YXJ7IDEuMSB9Owp9
prog.cpp: In function 'int main()':
prog.cpp:11:13: error: call of overloaded 'A(<brace-enclosed initializer list>)' is ambiguous
A var{ 1.1 };
^
prog.cpp:6:2: note: candidate: A::A(const std::initializer_list<float>&)
A(const std::initializer_list<float>&) { puts("initializer_list<float>"); } // (2)
^
prog.cpp:5:2: note: candidate: A::A(const std::initializer_list<int>&)
A(const std::initializer_list<int>&) { puts("initializer_list<int>"); } // (1)
^