Looking for c++ Answers? Try Ask4KnowledgeBase
Looking for c++ Keywords? Try Ask4Keywords

C++std :: variant


備考

バリアントは、元のunion使用に代わるものです。これは型保証され、どの型かを知っており、必要な時にその中のオブジェクトを慎重に構築し破棄します。

それはほとんど決して空ではありません:そのコンテンツを置き換えて安全に戻ってくることができないコーナーケースでのみ、それは空の状態に終わるかどうかです。

これはstd::tupleように動作し、 std::optionalと多少似ていstd::optional

std::getstd::get_ifは、普通は悪い考えです。正しい答えは通常はstd::visitであり、そこではあらゆる可能性に対処できます。あなたの行動を分岐させる必要visit場合、 visitより効率的に行うvisitに実行時検査のシーケンスを実行するのではなく、 if constexprvisit内で使用できるかどうかを確認します。

std :: variant 関連する例