可能性のある複製:
Visual Studio 2012のC++ 11機能
それで、私は Wikipedia を介してC++ 11イニシャライザリストを今日読んでいて、C++ 11が標準コンテナの次の構文をサポートしていることを確認しました。
std::vector<std::string> v = { "xyzzy", "plugh", "abracadabra" };
std::vector<std::string> v({ "xyzzy", "plugh", "abracadabra" });
std::vector<std::string> v{ "xyzzy", "plugh", "abracadabra" };
Visual Studio 2012で次のことを試みると、コンパイルエラーが発生しますC2552: 'vecs' : non-aggregates cannot be initialized with initializer list
これが私のコードです:
#include <vector>
using namespace std;
int main() {
vector<string> vecs = {"h", "g", "e"};
}
VS2012はイニシャライザリストをサポートしていませんか、それとも単に誤解していますか?
ありがとう!
Visual Studio 2012は初期化子リストをサポートしていません。
まあ、それは2012年11月のCTPまでありませんでした。今では、少なくともアルファ状態ではそうなります。確かに、初期化リストを標準ライブラリ自体に配置しているため、このコードはまだ機能しません。