gpt4 book ai didi

c++ - 你如何使用模板专门化常量

转载 作者:行者123 更新时间:2023-11-30 01:13:48 28 4
gpt4 key购买 nike

我想为用于模板类的每个不同类型返回一个不同的常量。

例如,当类是

Stack< int > 我想要常量EMPTY = -99

当类是 Stack 时,我希望常量 EMPTY 为“\0”。

到目前为止,我一直在寻找如何显式特化变量的语法,但不知道从哪里开始寻找它。

一个简单的代码示例会很棒,因为这个问题已经困扰我一段时间了。

我到目前为止(没有常量)是:

template<class T>
class Stack {
private:
T* items_;
//EMPTY constant here

public:

Stack();

~Stack();

void push(T value);

T pop();
};

最佳答案

template<class T>
class Stack {
private:
T* items_;
static T EMPTY;

public:
Stack();
~Stack();

void push(T value);
T pop();
};

extern template<> int Stack<int>::EMPTY;
extern template<> char Stack<char>::EMPTY;

然后在一个cpp文件中:

template<> int Stack<int>::EMPTY = -99;
template<> char Stack<char>::EMPTY = '\0';

请注意,根据用途,这将限制您可以用来实例化模板的类型。

关于c++ - 你如何使用模板专门化常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31195824/

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