【发布时间】:2020-10-17 21:28:39
【问题描述】:
我有一个模板类 XX,并希望将其实例化限制为仅类型 T 是另一个类 ZZ 的后代:
class ZZ {
public:
int transmorgificationFactor;
};
template <typename T>
class XX {
public:
static_assert(std::is_base_of<ZZ, T>, "T must be a ZZ");
T foo;
// ...
};
我正在使用 Visual Studio 2019 C++ (ISO C++17)
error C2275: 'std::is_base_of
': 非法使用这种类型作为 表达
这不是使用std::is_base_of<>的正确方法吗?
【问题讨论】:
标签: c++ templates inheritance c++17 typetraits