Код: Выделить всё
class Sample {
typedef boost::lock_guard AcquireLock;
boost::shared_ptr mutt;
public:
Sample() : mutt(new boost::mutex) {}
void Method()
{
AcquireLock lock(*mutt);
//do some work here
}
};
- Это плохая практика использовать мьютекс таким образом (как член класса, черезshared_ptr)?
Должен ли я иметь конструктор копирования для этого класса, поскольку у него есть память, выделенная в куче черезshared_ptr?
Я создам этот объект только один раз и сохраню его в std: :вектор. Мне не нужно делать его копии, а если вектору нужно делать копии, я не хочу иметь разные мьютексы для каждой копии. Вот почему я думаю, что конструктор копирования мне подойдет.
Подробнее здесь: https://stackoverflow.com/questions/948 ... onstructor