次のように定義されたType型のオブジェクトを返すgetterオブジェクトがあります。
typedef boost::variant<int, std::string> Empty;
返すintも文字列も持たず、代わりに空の状態を返す必要がある場合がよくあります。どうやってこの状態に戻ると思いますか?
a)typedef空のタイプをバリアントに追加します:boost::variant<int, std::string, Empty>
。
b)Type()を返す
c)例外をキャストする
d)boost :: shared_ptrを返します。これは、空の場合はNULLを指します。