struct X
{
int a;
int b;
};
int f(X x)
{
return x.a + x.b;
}
int main()
{
int n = f({1, 2});
}
Visual Studio 2012 (ноябрьская CTP) сообщает:
error C2664: 'int f(const X &)' : cannot convert parameter 1 from
'initializer-list' to 'X'
Reason: cannot convert from 'initializer-list' to 'X'
Only an initializer-list with zero or one elements can be converted to this type
Build FAILED.
Visual Studio 2012 (ноябрьская CTP) сообщает:
Это даже не бета компилятор. Это должно работать. Я бы сослался на ваш код, работающий над ideaone, но этот сайт не позволит этого сделать.
Подайте отчет об ошибке на нем.
Если вы хотите передать синтаксис стиля списка инициализаторов в ваш конструктор, тогда вы должны передать std::initializer_list
введите ваш конструктор. Этот тип затем создаст массив ваших типов при передаче { }
синтаксическая конструкция стиля.