Ошибка: boost.fusion::for_each() и структура, полученная из boost.tuple

При компиляции этот код:

struct any_type: boost::tuple<std::string, std::string, std::string> {
   ...
};

struct functor {
   void operator()(const std::string& v) {
      std::cout << v << std::endl;
   }
};

int main() {
   any_type type;
   boost::fusion::for_each(type, functor());
}

получить ошибку: нет типа с именем 'category' в 'struct any_type', почему? Я хочу, чтобы он унаследовал от boost.tuple.

1 ответ

Решение

Наследовать от boost::fusion::tuple вместо boost::tuple,
Примечание: подумайте о том, чтобы сделать void operator()(const std::string& v) Const

Другие вопросы по тегам