gpt4 book ai didi

c++ - 具有约束/概念的类模板特化

转载 作者:搜寻专家 更新时间:2023-10-31 00:09:17 30 4
gpt4 key购买 nike

我尝试对类特化使用约束:

struct A {};
struct B {};
struct C {};

template<typename T>
concept bool AorB() {
return std::is_same<T, A>::value || std::is_same<T, B>::value;
}

template<typename T>
class X {};

template<AorB T>
class X {};

int main() {
X<A> x1; // error: redeclaration 'template<class T> class X' with different constraints class X {};
X<B> x2;
X<C> x3;
}

我不知道我是否在这里犯了错误,或者这通常是不可能的?

有什么方法可以替代这种方法?我可以使用 CRTP 对通用基本模板进行特化,但这对我来说很难看。

最佳答案

这不是特化,你实际上重新声明了主模板,这确实是一个错误。
特化看起来像这样:

template<typename T>
class X { };

template<AorB T>
class X<T> { };
// ^^^

关于c++ - 具有约束/概念的类模板特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44044631/

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