首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

boost:make_shared的有关问题

2013-09-07 
boost::make_shared的问题boost::shared_ptrint boost::make_shared()template class T boost::sh

boost::make_shared的问题

boost::shared_ptr<int> = boost::make_shared();


template< class T > boost::shared_ptr< T > make_shared()
{
    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );

    boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt );

    void * pv = pd->address();

    ::new( pv ) T();
    pd->set_initialized();

    T * pt2 = static_cast< T* >( pv );

    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
    return boost::shared_ptr< T >( pt, pt2 );
}



无法编译,为毛啊? 不是有空参数的模版函数吗?

既然有0参数/空参数的版本,为什么不能编译?


[解决办法]
make_shared没加参数啊魂淡!

auto pInt = boost::make_shared<int>();

热点排行