0

与えられた:

typedef boost::variant<std::vector<int8>, std::vector<std::string> > Container;

cワンライナーとして初期化するにはどうすればよいですか?

std::vector<std::string> v = boost::assign::list_of<std::string>("stringValue");
Container c(v);
4

1 に答える 1

1

これを行う必要があります - list_of の結果を、バリアントに格納する型に明示的にキャストします。

Container c(vector<string>(list_of<string>("stringValue")));

またはさらに良い - C++11 を使用します。

Container c{ vector<string> {"stringValue1", "stringValue2"}};
于 2013-01-28T14:31:22.653 に答える