gpt4 book ai didi

c++ - If-else 基于正在使用的 typedef

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:52 28 4
gpt4 key购买 nike

我在 SO 上看到过与此类似的问题,但还没有找到我想要做的事情的答案。我有两个 typedef,只会使用其中一个(其他将被注释掉):

typedef Student StudentType;
typedef StudentPF StudentType;

我想使用别名 StudentType对于我目前正在使用的任何一个。稍后我有两组不同的代码,我想根据是否 StudentType 来选择运行哪一组。是 StudentStudentPF (学生参加类(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>();
}

关于c++ - If-else 基于正在使用的 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23852023/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com