2010-09-29 1 views
1

на компиляции этого код:ошибка: 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()); 
} 

получить ошибку: нет типа с именем 'категория' в 'STRUCT люб._тип' почему? Я хочу, чтобы он наследовал от boost.tuple.

ответ

1

Наследовать от boost::fusion::tuple вместо boost::tuple.
Примечание: Рассмотрите вопрос о создании void operator()(const std::string& v) const

+0

Спасибо. это работает :) – niXman

+0

Прохладный. Не забывайте Note2 :) –