型消去

From Wikipedia, the free encyclopedia

型消去 (: type erasure) とは、型変数が存在するクラスや構造体において、型変数を消去すること。

C++では、何らかの条件を満たす様々な型のオブジェクトをカプセル化し、テンプレートを使用しつつ実行時の多態性を実現する技法のことを言う。

以下のような利用例がある[1]

boost::anyおよびstd::any
代入・デストラクト可能なあらゆる型を保持できるクラス。
boost::functionおよびstd::function
クラステンプレートの型引数で関数のシグネチャ(仮引数・戻り値の型)を指定する。それと互換のあらゆる関数へのポインタや関数オブジェクトを保持できるクラステンプレート。
boost::shared_ptrおよびstd::shared_ptr
スマートポインタであり、削除子(デリーター、deleter)として、関数へのポインタや関数オブジェクトを指定できる。削除子の保有に型消去を利用している。

Java

注釈

出典

Related Articles

Wikiwand AI