可以在一行中完成以下操作吗?
typedef BOOST_TYPEOF(generator) G;
typename G::value_type next;
typename BOOST_TYPEOF(generator)::value_type next; //does not compile
谢谢
答案 0 :(得分:2)
尝试使用mpl::identity
typename mpl::identity<BOOST_TYPEOF(generator)>::type::value_type next;
宏可能正在扩展到某些编译器内在函数,如__typeof__(...)
,这些内在函数不一定有资格作为嵌套名称说明符出现。在decltype(...)
之前,即使是最初提出的::
C ++ 0x也不允许,但是在FCD中。