想知道是否有可能有一个模板函数,它可以根据类型是否派生自特定类而分支。以下是我的大致想法:
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
}
如果有人有任何想法,请告诉我!:)
编辑:我应该补充一点,我不想实例化/构造给定的对象只是为了检查它的类型。