型消去
From Wikipedia, the free encyclopedia
C++では、何らかの条件を満たす様々な型のオブジェクトをカプセル化し、テンプレートを使用しつつ実行時の多態性を実現する技法のことを言う。
以下のような利用例がある[1]。
boost::anyおよびstd::any- 代入・デストラクト可能なあらゆる型を保持できるクラス。
boost::functionおよびstd::function- クラステンプレートの型引数で関数のシグネチャ(仮引数・戻り値の型)を指定する。それと互換のあらゆる関数へのポインタや関数オブジェクトを保持できるクラステンプレート。
boost::shared_ptrおよびstd::shared_ptr- スマートポインタであり、削除子(デリーター、deleter)として、関数へのポインタや関数オブジェクトを指定できる。削除子の保有に型消去を利用している。