C の型消去とは、Boost.Any と同様に、クラスに関する型情報の一部またはすべてを非表示にする手法を指します。ここでは、さまざまな型消去のアプローチを示します。
仮想関数は、インターフェイスベースのクラス階層内のクラスの実装を抽象化する古典的な手法です。このアプローチは、型や割り当て解除メカニズムを非表示にするために、Boost.Any や Boost.Shared_ptr などの多くの Boost ライブラリで採用されています。
代替オプションには、関数ポインターの使用が含まれます。実際のオブジェクトを void* ポインターに格納しながら、テンプレート関数を使用します。 Boost.Function は、この手法を利用してファンクターの実型を隠蔽します。
たとえば、GMan のアプローチはテンプレートを利用して実際の型を隠蔽します。仮想関数や void* に頼ることなく操作。
shared_ptr
C のすべての型消去手法は、関数ポインターと void* ポインターを使用します。 、主な違いはセマンティック シュガーの提供にあります。
以上がC はどのようにして型消去を実現できるか: 技術の比較?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。