1
std::vector<int> test { 0x34 };

给出这个错误:

error expected a ';'

我正在使用支持此 C++11 功能的 VS2012。

4

1 回答 1

2

您的代码在 C++11 中是完全合法的。我必须得出结论,您没有使用 2012 年 11 月的 CTP,在这种情况下,您的假设是:

我正在使用支持此 C++11 功能的VS2012 。

是不正确的。StackOverflow 上的这个 Q&A阐明了 VC11 支持哪些功能。

请注意,仅在 2012 年 11 月的 CTP 中支持统一初始化。

虽然 2012 年 11 月的 CTP 确实在编译器中引入了对 C++11 统一初始化的支持(请参阅 StackOverflow 上的这个问答了解支持哪些功能的概述),但 VS2012 附带的标准库的实现已经没有被重写以利用这些特性(初始化向量时出错)。

于 2013-06-08T14:54:16.810 回答