Resultados da pesquisa a pedido "explicit-destructor-call"
Chamada de pseudo-destruidor não destrói um objeto
Considere o seguinte código: #include <iostream> typedef int t; t a=42; int main() { a.t::~t(); std::cout << a; //42 }Eu sou esperado quea será destruído. Mas não é verdade, por quê? Como essa chamada de pseudo-destruidor será destruída no objeto?
É permitido chamar o destruidor explicitamente seguido pelo posicionamento new em uma variável com vida útil fixa?
Eu sei que chamar o destruidor explicitamente pode levar a um comportamento indefinido por causa da chamada do destruidor duplo, como aqui: #include <vector> int main() { std::vector<int> foo(10); foo.~vector<int>(); return 0; // Oops, ...