sample サンプルの動作確認バージョン [GCC4.4/1.41.0] [VC9/1.41.0] // boost::optional的な物の再開発 #include <new> #include <boost/utility/in_place_factory.hpp> template<typename T> class my_optional { public: my_optional() : storage(0) {} template<class InPlace> my_optional( const InPlace& p ) : storage(reinterpret_cast<T*>(new char[sizeof(T)])) { p.template apply<T>(storage); } ~my_optional() { delete storage; } opera