Этот код не компилируется на VS2010:Передача литерал массива в качестве аргумента функции
struct Point {
float x;
float y;
};
void do_something(Point p) {
// something happens here
}
int main(int argc, char **argv) {
do_something({10, 11});
}
Существуют ли какие-либо версии C++, где это законно синтаксис?
Вот полезная схема того, что есть и не поддерживается в последних версиях MSVC: https://msdn.microsoft.com/en-us/library/hh567368.aspx – user4581301
Компилятор, совместимый с C++ 11 должен поддержать это. VS2010 не поддерживает C++ 11. –
, например. gcc 5.1 с опциями -std = C++ 1y -Wall -Wextra -pedantic –