Попробуйте использовать mpl::identity
typename mpl::identity<BOOST_TYPEOF(generator)>::type::value_type next;
Макрос, вероятно, расширяется до некоторых встроенных функций компилятора, таких как __typeof__(...)
, которые не обязательно могут отображаться как спецификатор вложенного имени.Даже предложенный C ++ 0x decltype(...)
изначально не был разрешен до ::
, но есть в FCD.