2 ms·
C++ noob here. This reminded me of "Obscure C++ Features" [1] (discussion [2]) - the 'Placement new' feature. Basically, we can allocate memory using malloc and
by fabriceleal 13y ago
C++ noob here. This reminded me of "Obscure C++ Features" [1] (discussion [2]) - the 'Placement new' feature.
Basically, we can allocate memory using malloc and then call the constructor on the allocated memory:
// Must allocate our own memory
Test *ptr = (Test *)malloc(sizeof(Test));
// Use placement new
new (ptr) Test;
// Must call the destructor ourselves
ptr->~Test();
// Must release the memory ourselves
free(ptr);
My point is: is possible that the explicit constructor call feature is intended to be used in this use case?
[1]: http://madebyevan.com/obscure-cpp-features/ http://madebyevan.com/obscure-cpp-features/
[2]: https://news.ycombinator.com/item?id=5577631 https://news.ycombinator.com/item?id=5577631