gpt4 book ai didi

c++ - 按特化排除类(class)成员

转载 作者:行者123 更新时间:2023-11-27 22:48:09 25 4
gpt4 key购买 nike

我有基类模板,我正在制作另一个类,它们是我的基类的专门版本。我知道如何从特定的特化案例中排除某些方法,但是有没有可能为类(class)成员做到这一点?我想要实现的示例代码:

template<typename T>
class Base {
This variable exists only when T==integer VARIABLE;
}

template <Typename T>
WithVariable = using Base<int>;

template <Typename T>
Without = using Base<double>

我认为我应该以某种方式使用 std::enable,但是当我不想要该变量时,使用它可以生成类型为“void”的 VARIABLE。这仍然不是我想要实现的情况。

最佳答案

您能否专门化该类而没有不需要的成员?

template <typename T>
class Base {
public:
T t;
};

template <>
class Base<int> {
};

int main() {
Base<int> foo;
foo.t = 42; // Error: no member named 't' in 'Base<int>'
}

关于c++ - 按特化排除类(class)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40895944/

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