C++ 将数组文字作为函数参数传递

C++ 将数组文字作为函数参数传递,c++,struct,C++,Struct,此代码不在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++的版本,这里是合法的语法? ,这看起来像是聚合初始化。它应该在2013年起作用 编辑:确认,这应该可以在c++1

此代码不在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++的版本,这里是合法的语法?

,这看起来像是聚合初始化。它应该在2013年起作用

编辑:确认,这应该可以在c++11编译器上运行。 此外,它不是数组文字,而是聚合初始化。你可以在上面找到规则,然后。
您可能可以下载一个较新的编译器并在旧的IDE上运行它,但除此之外,我认为VS2010无法运行它。

我觉得这就像是聚合初始化。它应该在2013年起作用

编辑:确认,这应该可以在c++11编译器上运行。 此外,它不是数组文字,而是聚合初始化。你可以在上面找到规则,然后。
您可能可以下载一个较新的编译器并在较旧的IDE上运行它,但除此之外,我认为VS2010无法运行它。

下面是一个有用的图表,显示了MSVC最新版本中支持和不支持的内容:符合C++11的编译器应该支持这一点。VS2010肯定不支持C++11。带有选项-std=c++1y-Wall-Wextra-pedanticher的gcc 5.1是一个有用的图表,显示了MSVC最新版本中支持和不支持的内容:符合c++11的编译器应该支持这一点。VS2010肯定不支持C++11。gcc5.1中的选项-std=c++1y-Wall-Wextra-pedanticNah,你在那里运气不好,@peco。快速的答案是C++ 11是2011中批准的C++标准,所以MSVC 2010的支持注定是不稳定的。他们确实得到了共享和独特的指针,所以他们在尝试。这比我所能说的更多,因为他们支持C。不,你在那里太不走运了,@peco。快速的答案是C++ 11是2011中批准的C++标准,所以MSVC 2010的支持注定是不稳定的。他们确实得到了共享和独特的指针,所以他们在尝试。这比我能说的更多,因为他们支持C。