gpt4 book ai didi

c++ - 如何专门化基于 bool 元函数的类模板?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:19 24 4
gpt4 key购买 nike

我有一个主模板,我需要根据元函数对其​​进行专门化。通常的成语是like

 template<class T,class E = void>
struct foo { };
template<class T>
struct foo<T,std::enable_if_t<is_xxx<T>{}> > {};

但是,我有一种情况,主模板写成

template<class T>
struct foo { };

(即没有那个额外的 SFINAE 占位符)并且我不允许更改它。基于特征对其进行专门化的最佳方法是什么(就像我主要针对基于返回类型或附加参数的函数模板那样做)?

最佳答案

你可以添加一个基类:

template<class T, class E = void>
struct foo_base { };

template<class T>
struct foo : foo_base<T, std::enable_if_t<is_xxx<T>{}>> { };

然后将 foo 的所有成员移动到 foo_base 中。

关于c++ - 如何专门化基于 bool 元函数的类模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21577387/

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