我需要一个if-else比较,它会询问其中的对象是否属于某种类型。我还需要编译器忽略错误的行。
所以它会像
#if (/* the object is an objectType */)
object.doSmth();
#else
object.doSmthElse();
#endif
我有类似
的东西strcmp(typeid(object).name(), "class objectType")==0
但只有#else行才有效。
我对比较部分感到困惑。是否有正常的方法来定义它?
答案 0 :(得分:0)
您可以使用函数模板和重载来区分类型:
void doSmth(objectType & object) {object.doSmth();}
template <class Type> void doSmth(Type & object) {object.doSmthElse();}
现在doSmth(object)
将选择第一个object
是否具有类型objectType
,否则将选择第二个,如您的伪代码所指定。