boost::variant<boost::container::vector<int>, std::string> tmp = "test";
std::string use;
namespace karma = boost::spirit::karma;
bool r = karma::generate(std::back_insert_iterator<std::string>(use), +karma::int_ | *karma::char_, tmp);
Результат: r = false, use = "". Однако я ожидаю, что use = "test".Использование контейнера для хранения контейнера в карме
Существует еще один пример
boost::variant<std::vector<int>, std::string> tmp = "test";
std::string use;
namespace karma = boost::spirit::karma;
bool r = karma::generate(std::back_insert_iterator<std::string>(use), +karma::int_ | +karma::char_, tmp);
В результате по-прежнему г = ложно, используйте = "". Однако. Что случилось?
Спасибо. Ты прав. Карма не могла обрабатывать std :: string как вектор автоматически. –
vipcxj