The attached patch removes the 2-stage initialization feature from the C++ interface classes. I consider it to be bad design since it allows objects to exist in an invalid state. Also it is inconsistent since not all classes have it. It was argued to be a memory management feature, but smart pointers are better suited for that. std::auto_ptr provides the same functionality as the current 2-stage initialization an is available without extra dependencies.