gpt4 book ai didi

c++ - 专门化模板成员函数以针对特殊模板类以不同的方式工作

转载 作者:太空宇宙 更新时间:2023-11-04 13:35:03 25 4
gpt4 key购买 nike

我有两个类 class A 和 class B 它们都是 A 中成员函数的模板类 我希望它在 A 的类型为 B 时以特殊方式运行对于我不知道该怎么做的任何其他类型,以正常方式?

template <class B>
class B
{
private:
T m;
public:
...... any member functions
}

template <class T>
class A
{
private:
T var;
public:
void doSomething();
};
template <class T>
void A<T>::doSomething(){...........//implementation}
template <class T>
void A<B<T>>::doSomething(){................//different implementation}

最佳答案

你可以专攻A这样:

template <class T>
class A<B<T>> {
// ...
};

这是 partial template specialization 的一个实例.

如果拒绝全类特化,可以推迟A<T>::doSomething()的工作到函数 doSomethingForA<T>(A &)那将是部分特化的,并且可能是 A<T> 的 friend .

关于c++ - 专门化模板成员函数以针对特殊模板类以不同的方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868008/

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