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 );
}
このまま問題なくコンパイル、実行できる。 ポインタを使った時の様にmfree をする必要も無くなるので、簡単になる。

前回次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/05/08/9244298/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。