前回(variantの実装(3) -placement new- - while( c++ );)のつづき。 variantに任意のオブジェクトを格納することが出来たので、今回はオブジェクトを取り出してみます。 variantに格納されているのオブジェクト(storage_)の型は、メンバwhich_で型に対応する番号として管理されています。 template< typename T1, typename T2, ..., typename TN > class variant { storage_type storage_; int which_; //T1 -> 1 //T2 -> 2 // ... //TN -> N }; ということは、前回のデストラクタのようにwhich_の値でキャストすればよさそうですね。 template< typename T1, typename T2,