我在 SO 上看到过与此类似的问题,但还没有找到我想要做的事情的答案。我有两个 typedef,只会使用其中一个(其他将被注释掉):
typedef Student StudentType;
typedef StudentPF StudentType;
我想使用别名 StudentType
对于我目前正在使用的任何一个。稍后我有两组不同的代码,我想根据是否 StudentType
来选择运行哪一组。是 Student
或 StudentPF
(学生参加类(class)作为合格/不合格)。
有什么办法可以达到这种效果吗?
if (StudentType is of type StudentPF)
//do these things
else
//do these different things
我尝试这样做的原因是,如果我保留 Student
的标题,我可以通过简单地注释掉一行并在另一行中注释来更改我的程序的行为。和 StudentPF
包括在内。
编写函数模板。针对您感兴趣的每种类型专门化它。使用您的 typedef 类型实例化它。
template<typename T>
void DoStuff();
template<>
void DoStuff<Student>()
{
...
}
template<>
void DoStuff<StudentPF>()
{
...
}
int main()
{
DoStuff<StudentType>();
}
我是一名优秀的程序员,十分优秀!