Я определил класс с именем Node
и я объявляю следующее переменный с помощью std::atomic
:Как переопределить по умолчанию деструктора для STD :: атомных классов
atomic<Node *> head(new Node());
Node
указателя, содержащегося в будет deleted
когда сам атомный класс однако я хочу, чтобы указатель был удален в другом месте.
Я использую MinGW, и я проверил исходный код GCC, он использует деструктор по умолчанию.
Как я могу переопределить деструктор по умолчанию для атомного класса?
_ «Указатель узла, содержащийся внутри, будет удален после уничтожения самого атомного класса» _ Он не будет удален. С чего взял? –
Вы можете использовать, например, std :: shared_ptr, чтобы удалить память, указанную вашим указателем. Это позволяет настраивать разрушение. http://www.cplusplus.com/reference/memory/shared_ptr/~shared_ptr/ –
['std :: shared_ptr'] (http://en.cppreference.com/w/cpp/memory/shared_ptr)? Кроме того, можете ли вы подробно остановиться на * актуальной * проблеме, которую вы хотите решить, с помощью этого «решения», с которым вы хотите помочь ([связанное чтение о проблеме XY] (http://xyproblem.info/))? –