考虑代码:
#include <iostream>
#include <vector>
#include <string>
int main()
{
std::vector<std::string> v{{"awe", "kjh"}}; // not v{"awe", "kjh"}
std::cout << v.size() << std::endl;
return 0;
}
这段代码是错误的吗?或者
{}
在初始化向量时使用 double 是否有效?我在 gcc 和 MSVC 上尝试了这段代码。MSVC 2012 + 编译器 Nov 2012 只是无法编译它,这并不奇怪。使用 gcc 4.7 或 4.8 编译的这段代码在程序执行期间会出现运行时错误。这种行为正确吗?
不幸的是,无法使用其他编译器对其进行测试。