class test {
public:
test() = default;
~test() = default;
void recreate() {
this->~test();
new (this) test{};
}
};
void main() {
test b;
b.recreate();
}
撇开你的问题,例如"为什么你需要这个",我的问题 - 这是有效且可接受的C ++代码吗?这里没有隐藏的UB?
它在MSVC 2017中编译。