C++17 の variant は shared_ptr と相性が良い2020年05月08日 11時56分27秒

C++17 の variant 型はポインタ型を正しく扱えるがメモリの扱いがとても面倒な物になった。そこで試したのが shared_ptr。ポインタ型を通して仮想関数を用いた動的バインディングを使いたいからだ。

variant に shared_ptr 型を渡すだけの実験。

#include <variant>
#include <memory>

int main()
{
    std::variant< std::shared_ptr< int >, std::shared_ptr< double &g
t; > number;
    number = std::make_shared< int >( 3 );
    number = std::make_shared< double >( 3.14 );
}
このまま問題なくコンパイル、実行できる。 ポインタを使った時の様にfree をする必要も無くなるので、簡単になる。

前回次回次々回