LWG 2424 обсуждает нежелательный статус атомистики, мьютексов и переменных условий как тривиально скопируемых в C + +14. Я понимаю, что исправление уже выстроено в линию, но std::mutex
, std::condition variable
и др. как представляется, имеют нетривиальные деструкторы. Например:
30.4.1.2.1 Мьютекс класса [thread.mutex.class]
namespace std { class mutex { public: constexpr mutex() noexcept; ~mutex(); // user-provided => non-trivial … } }
Не следует ли это дисквалифицировать их как тривиально скопируемые?