- // Copy+move (with the copy-and-swap idiom):
- ConditionVariable(ConditionVariable const& cond) : cond_(SIMIX_cond_ref(cond.cond_)) {}
- friend void swap(ConditionVariable& first, ConditionVariable& second)
- {
- using std::swap;
- swap(first.cond_, second.cond_);
- }
- ConditionVariable& operator=(ConditionVariable cond)
- {
- swap(*this, cond);
- return *this;
- }
- ConditionVariable(ConditionVariable&& cond) : cond_(nullptr)
- {
- swap(*this, cond);
- }
+ friend XBT_PUBLIC(void) intrusive_ptr_add_ref(ConditionVariable* cond);
+ friend XBT_PUBLIC(void) intrusive_ptr_release(ConditionVariable* cond);
+ using Ptr = boost::intrusive_ptr<ConditionVariable>;
+
+ static Ptr createConditionVariable();