金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  423 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks
class TestCoro  
{  
      
  
    typedef boost::coroutines::coroutione
<void ()> Coro;  
      
    
void CoroFun(Coro::caller_type & ca);  
      
    Coro m_coro;  
};  
  
TestCoro::TestCoro()  
{  
    m_coro 
= Coro(boost::bind(&TestCoro::CoroFun, this, _1));  

可以在VC下编译通过。Gcc报错。需要改成
    TestCoro::TestCoro()  
    {  
        typedef boost::function
<void (Coro::caller_type &)> CoroFunType;  
        CoroFunType coroFun 
= boost::bind(&TestCoro::CoroFun, this, _1);  
        boost::is_function
<BOOST_RV_REF(boost::rv<Coro>)> noUse1;  
        boost::is_function
<BOOST_RV_REF(CoroFunType)> noUse2;  
        m_coro 
= Coro(coroFun);  
    } 

g++版本为:

g++ (GCC) 4.4.5 20110214 (Red Hat 4.4.5-6)

2个is_function不加就无法确定coroutine的构造函数。可能是g++的错误。


posted on 2013-11-22 15:56 金庆 阅读(1022) 评论(0)  编辑 收藏 引用 所属分类: 1. C/C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理