Сработает ли деструктор, присвоив atomic?

В C++, atomic-типы предоставляют атомарные операции чтения и записи, которые гарантируют согласованное поведение в многопоточной среде. Однако, при присвоении atomic-объекта другому atomic-объекту, деструктор не будет вызван.

При присвоении atomic-объекта, происходит простое копирование битов из одного объекта в другой, без вызова конструктора или деструктора. Это связано с тем, что atomic-объекты не хранят указатели на динамически выделенную память и не имеют сложных внутренних состояний, что позволяет просто копировать их значения.

Если у вас есть необходимость вызвать деструктор после присвоения atomic-объекта, то вам необходимо использовать какой-то другой механизм для этого, например, использование lock_guard или unique_lock с mutex для предоставления защиты от одновременного доступа к объекту. Такое решение позволит вам гарантировать выполнение необходимых действий перед уничтожением объекта.

В общем, при присвоении atomic-объекта другому atomic-объекту, деструктор не будет вызван. Если вы хотите выполнить дополнительные действия при присвоении atomic-объекта, вам следует использовать другие механизмы, такие как mutex или lock_guard, чтобы гарантировать правильное выполнение этих действий перед уничтожением объекта.