Есть класс подключения разных устройств Device, в этом классе кроме прочих членов находиться std::mutex mlock;, так как объекты класса Device будут использоваться для работы в потоках. В начале программы я создаю Вектор объектов класса Device, «vector <Device> DeviceList(Config.GetDevAmount());» Здесь все работает как должно, вопросов нет, а вот дальше мне приходиться выполнять различные манипуляции с Вектором. Например, у меня в Векторе 10 объектов класса Device, в процессе работы мне нужно добавить еще 3 объекта класса Device после объекта с индексом 6, т.е., например, использовать модификатор insert. Но при использовании insert происходит копирование, а mutex копировать нельзя. push_back так же выполняет копирование, та же ситуация с resize. Может кто-то подсказать как правильно использовать mutex внутри объекта класса, чтобы можно было свободно работать с вектором?
Заранее благодарю за любой совет, так как сам уже несколько дней ломаю голову, а выхода не нашел. P.S. В операторе копирования в классе Device, попробовал создавать новый мютекс при копировании объектов. Если ручками написать Dev2 = Dev1, то все работает, а вот Вектор все равно ругает при компиляции и пока не выкинешь мютекс из класса - компилиться не хочет((((