問:侵入列表和隊列不允許的shared_ptr
沒有問題:
Live On Coliru
#include <boost/intrusive/list.hpp>
#include <boost/shared_ptr.hpp>
struct Event {};
struct Node : boost::intrusive::list_base_hook<> {
boost::shared_ptr<Event> event { new Event };
};
typedef boost::intrusive::list<Node> event_list;
int main() {
std::vector<Node> nodes(10);
event_list pending;
pending.push_back(nodes[3]);
pending.push_back(nodes[7]);
}
從你期望的事實(?)intrusive::list<T>
爲T = shared_ptr<...>
工作告訴我,你想要一個簡單的std::list
(或只是一個std::vector
),而不是。
甚至經常提到
經常提到的也不是問題。你想使用shared_ptr<const Event>
嗎?因爲如果您與多方共享活動,這是一個不錯的選擇。
這太好了!非常感謝! – guitar80 2015-02-10 15:06:10