【发布时间】:2019-12-12 21:40:01
【问题描述】:
我想根据模板中的类型在结构中定义其他变量,如下所示:
template<typename CONFIG>
struct Test
{
int a;
int b;
if (std::is_same<CONFIG, MyClass>::value)
{
// additional variables if the CONFIG type is MyClass
int c;
int d;
}
// functions
void func()
{
a = 0;
b = 0;
if (std::is_same<CONFIG, MyClass>::value)
{
c = 0;
d = 0;
}
}
}
我该怎么做?谢谢!
【问题讨论】:
-
您不能在运行时修改类/结构的内容。它必须是编译时常量。
-
您可以使用模板专业化,但不使用模板,而只需定义一个单独的
MyClassTest,它具有额外的成员将实现同样的效果,并且复杂性更小 -
谢谢大家!很有帮助!