gpt4 book ai didi

C++ 模板特化

转载 作者:太空狗 更新时间:2023-10-29 23:34:32 27 4
gpt4 key购买 nike

我有课

template <typename T>

class C
{
static const int K=1;
static ostream& print(ostream& os, const T& t) { return os << t;}
};

我想专门为 int 设计 C。

 //specialization for int
template <>
C<int>{
static const int K=2;
}

我希望保留适用于 int 的默认打印方法,只更改常量。对于某些特化,我想保持 K=1 并更改打印方法,因为那里不是 << 运算符。

我该怎么做?

最佳答案

你可以这样做:

template <typename T>
class C {
static const int K;
static ostream& print(ostream& os, const T& t) { return os << t;}
};

// general case
template <typename T>
const int C<T>::K = 1;

// specialization
template <>
const int C<int>::K = 2;

关于C++ 模板特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3023760/

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