【发布时间】:2013-08-09 11:11:05
【问题描述】:
在我的项目中,我使用 boost::shared_ptr,在一个头文件中,我写道:
typedef boost::shared_ptr<boost::lockfree::spsc_queue<PacketsInput, boost::lockfree::capacity<4096> > > queue_ptr;
在另一个源文件中,我使用它:
std::vector<queue_ptr> v;
for (...)
v.push_back(boost::make_shared(/* #1 */));
在 #1 中,我想写 queue_ptr 的指向类型,而不是
boost::lockfree::spsc_queue<PacketsInput, boost::lockfree::capacity<4096> >
还有多久!
但是boost::shared_ptr里面没有typedef,我找到的只有一个typedef:typedef typename boost::detail::sp_element< T >::type element_type;但是不知道怎么用。
有什么帮助吗?坦克很多!
【问题讨论】:
-
如果你使用 C++11,那么你应该迁移到 std::shared_ptr
-
@Bathsheba 是的,但是我的编译器有点老了,不是所有的 c++11 功能都支持,我不想混合 std 和 boost 组件;-)
-
"但是 boost::shared_ptr 中没有 typedef,我发现的唯一一个是 typedef" 所以有一个,这正是你要找的为!
标签: c++ boost shared-ptr smart-pointers