
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
突然だが私はunionが好きだ。特にメモリ効率を重視するC++においては利用した方が良い場合が稀にある。... 突然だが私はunionが好きだ。特にメモリ効率を重視するC++においては利用した方が良い場合が稀にある。しかし、C++の型情報を尊重するスタンスとは相容れない部分で苦労する事になる。そう、unionに何の型が配置されているのか分からないのだ。 という訳で、C++17で追加されるunionライクなオブジェクトに型安全に連絡できるというstd::variantが待ち遠しいので、自分の都合の良いようにC++11で実装する。但し、インターフェースの互換性は考慮せず、std::variantとは合わせない。また、ヒープ領域に依存したくないので、ストレージはオブジェクト内に用意する。 先ずは外部インターフェースを考える。variantは複数の型を持ち、それぞれの型でだけ初期化できるものとする。メンバ関数visitに関数オブジェクトを渡す事で内部の型に応じた値を引数として関数オブジェクトを呼び出す。以上