Использование boost :: assign :: list_of с boost :: вариантом

Дано:

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);

0

Решение

Это должно сделать — явным образом приведите результат list_of к типу, который вы хотите сохранить в варианте:

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

Или еще лучше — используйте C ++ 11:

Container c{ vector<string> {"stringValue1", "stringValue2"}};
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector