У вас не может быть вектора ваших my_t
объектов, потому что класс my_t
содержит std::mutex
es:
std::mutex bmtx;
std::mutex amtx;
Мьютексы имеют конструктор удаленных копий .Не существует такого понятия, как создание мьютекса при копировании.
Так как ваш класс my_t
также не имеет конструктора копирования, он также автоматически удаляет конструктор копирования my_t
.
Класс значений std::vector
должен иметь, как минимум, конструктор копирования и оператор присваивания .Это потому, что вектор должен быть в состоянии перераспределить свое содержимое, чтобы приспособиться к его росту.Это означает, что элементы в векторе должны быть копируемыми / присваиваемыми.
Если вы явно реализуете конструктор копирования и оператор присваивания для своего my_t
класса, вы сможете сделать из них вектор,Но тогда вам нужно будет выяснить, что значит копировать-конструировать и назначать вашему my_t
классу ...
Самое большее, что вы можете сделать, с вашим классом как есть, это иметьвектор указателей на my_t
экземпляров.Возможно использование std::unique_ptr
или std::shared_ptr
.