1

私のプロジェクトでは、1 つのヘッダー ファイルで 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;しかし、使い方がわかりません。

何か助けはありますか?タンクがいっぱい!

4

2 に答える 2

1

2 つの typedef を使用できます

   typedef boost::lockfree::spsc_queue<PacketsInput, boost::lockfree::capacity<4096> > my_queue;
   typedef boost::shared_ptr<my_queue> my_queue_ptr;

そして、my_queueで使用できますmake_shared

于 2013-08-09T11:14:59.773 に答える