C++17 の variant ではポインタ型も使えるが不便過ぎ2020年05月07日 11時48分46秒

C++17 から導入された variant 型は union よりも発達した。

variant でポインター型を使えるか実験してみた。

#include <variant>

int main()
{   
    std::variant< int*, double* > number;
    number = new int( 3 );
    delete std::get< int* >( number );
    number = new double( 3.14 );
}
このまま問題なくコンパイル、実行できる。

ただ見ての通り、ポインタ型を保持したので自ら delete の処理が必要になる。これは面倒臭い。

前回次回