Вы присвоили псевдониму push_back
значение vec2
. Вам нужно использовать
typedef boost::fusion::result_of::push_back<vec1, std::string>::type vec2;
Но имейте в виду, что тип может все еще не совпадать, алгоритмы Fusion не обязаны сохранять тип (а поскольку функция push_back
должна возвращать ленивое представление, то vec2
, скорее всего, будет некоторым тип просмотра). Единственная гарантия состоит в том, что vec2
будет «Модель прямой последовательности». .