
Does Boost have some sort of uninitialized storage container? Presently, I use this pattern if I want to delay construction of a sub-object. class my_class { public: my_class() { // ... subobject = auto_ptr<type>(new type(params)); } private: auto_ptr<type> subobject; }; But I'd like something similar that didn't use the heap, but instead allocated the storage for the sub-object within the class object itself. Perhaps it would look like this. class my_class2 { public: my_class2() { // ... subobject.construct(params); } private: uninitialized_container<type> subobject; }; A TR1 array<T, sizeof(T)> almost works, except for these points: (1) It doesn't provide proper alignment guarantees. (2) It doesn't call the destructor when it is destroyed. So, does Boost have any such thing?