Я хотел использовать std::mutex
в своем классе и заметил, что он не копируется. Я нахожусь на нижнем уровне моей библиотеки здесь, поэтому кажется, что это ужасная идея иметь такое поведение.Есть ли `shared_lock_guard`, а если нет, как бы он выглядел?
Я использовал std::lock_guard
на std::mutex
, но, похоже, не существует shared_lock_guard
, что было бы предпочтительнее для обеспечения поведения, связанного с блокировкой записи. Это надзор или тривиальное воплощение?
Возможно, вам это нужно: [std :: shared_lock] (http://en.cppreference.com/w/cpp/thread/shared_lock) – Galik
Это звучит как серьезный недостаток XY-проблемы/дизайна. У меня есть мьютекс на уровне класса, просто оставьте это от копирования. –
«* Я нахожусь на нижнем уровне моей библиотеки здесь, поэтому кажется, что это ужасная идея иметь такое поведение. *« Мьютексы вообще не должны жить «на нижнем уровне» библиотеки. По крайней мере, не так, как вы предлагаете. Это звучит так, будто вы пытаетесь заблокировать доступ через mutex к классу утилиты. Это вообще плохая идея. –