В следующем коде на С++ я могу явно вызвать деструктор, но не конструктор. Почему это? Не будет ли явным ctor вызывать более выразительный и унифицированный с dtor-кодом?
class X { };
int main() {
X* x = (X*)::operator new(sizeof(X));
new (x) X; // option #1: OK
x->X(); // option #2: ERROR
x->~X();
::operator delete(x);
}