gpt4 book ai didi

c++ - 'partially' 如何专门化成员方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:49:59 25 4
gpt4 key购买 nike

我有课

template<class T, bool isOrdered>
class Vector
{
public:
int Find(const T& t); // Return its index if found.

// Many other methods.
};

根据 isOrderedtruefalseFind 有两个版本。成员方法没有部分特化(class T 没有特化)。我的问题是如何使它们特化?谢谢。

最佳答案

std::integral_constant 上使用重载:

template<class T, bool isOrdered>
struct Vector {
int find(const T& t) {
return find_impl(t, std::integral_constant<bool,isOrdered>());
}
int find_impl (const T& t, std::true_type) {return 1;}
int find_impl (const T& t, std::false_type) {return 2;}
};

关于c++ - 'partially' 如何专门化成员方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439534/

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