在表达式中使用BOOST_TYPEOF

时间:2010-07-02 00:18:46

标签: c++ boost

可以在一行中完成以下操作吗?

typedef BOOST_TYPEOF(generator) G;
typename G::value_type next;

typename BOOST_TYPEOF(generator)::value_type next; //does not compile

谢谢

1 个答案:

答案 0 :(得分:2)

尝试使用mpl::identity

typename mpl::identity<BOOST_TYPEOF(generator)>::type::value_type next;

宏可能正在扩展到某些编译器内在函数,如__typeof__(...),这些内在函数不一定有资格作为嵌套名称说明符出现。在decltype(...)之前,即使是最初提出的:: C ++ 0x也不允许,但是在FCD中。