型が特定のクラスから派生したものかどうかに応じて分岐できるテンプレート関数を使用できるかどうか疑問に思っていました。おおまかに以下のように考えています。
class IEditable {};
class EditableThing : public IEditable {};
class NonEditableThing {};
template<typename T>
RegisterEditable( string name ) {
// If T derives from IEditable, add to a list; otherwise do nothing - possible?
}
int main() {
RegisterEditable<EditableThing>( "EditableThing" ); // should add to a list
RegisterEditable<NonEditableThing>( "NonEditableThing" ); // should do nothing
}
誰かアイデアがあれば教えてください!:)
編集:追加する必要があります。指定されたオブジェクトをそのタイプを確認するためだけにインスタンス化/構築したくありません。