gpt4 book ai didi

c++ - 模板参数的几种类型

转载 作者:行者123 更新时间:2023-11-28 00:15:41 25 4
gpt4 key购买 nike

我搜索了一个提示,其中我可以为模板参数设置多种类型,例如:

那是我的类(class):

template <class T, class U = unsigned char>
class Value
{
private:
T value;
U mask;
public:
Value(T inValue, U inMask) : value(inValue), size(inMask){};
// ...
};

这是我的职能:

void process(Value<int, ..>); // process(Value<int, {unsigned char, unsigned short}>)
void process(Value<float, ...>);

我希望这个例子有效:

int main()
{
Value<int> vl1(16, 0x80);
Value<int, unsigned short> vl2(16, 0x8000);
Value<float> vl3(0.85, 0x80);

process(vl1); // call process(Value<int, ...>)
process(vl2); // Call process(Value<int, ...>)
process(vl3); // Call process<Value<float>)
}

并避免像这样对我的流程函数进行模板化:

template<class U> void process(Value<int, U>);
template<class U> void process(Value<float, U>);

最佳答案

您不必为您的process 函数提供默认值

template<class U> void process(Value<int, U>);
template<class U> void process(Value<float, U>);

足够了。

关于c++ - 模板参数的几种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484782/

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