c++ - 如何使用类的类型作为模板的参数

标签 c++ templates

对于模糊的标题,我深表歉意,但我想创建一个模板类,该模板类是为指向函数指针的某个指针定义的。目前,我有这个:

template<class TB, TB TCons, class TF, TF TDes>
struct foo{}

像这样使用:

using bar = foo<decltype(&tb), &tb, decltype(&tf), &tf>;

但是,很明显,指定&tb&tf 的类型以及指针本身的代码冗余。有没有一种方法可以构造一个模板类,以便我可以改为执行类似的操作?

using bar = foo<&tb, &tf>;

最佳答案

从 C++17 开始,我们现在可以使用 auto 作为模板参数的类型,所以我们现在可以这样做:

template<auto TCons, auto TDes>
struct foo{};

如果我们需要获取TConsTDes 的类型,我们可以使用decltype

关于c++ - 如何使用类的类型作为模板的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29662516/

相关文章:

c++ - 如何使用boost分布函数?二分法呢?

java - 如何在 JNI 中访问从 C++ 返回 java.lang.String 的 Java 方法的返回值?

c++ - 将元组的内容作为可变函数参数传递

c++ - 为什么我必须通过this指针访问模板基类成员?

templates - Grails动态更新模板属性

c++ - 我可以将 *array 传递给 EXE 吗?

c++ - 使用通用接口(interface)查找序列的大小

javascript - 如何使用 jQuery 从 <template> 中选择元素

c++ - 为什么允许我显式实例化模板特化,其中默认参数不能隐式转换为其他类型?

c++ - 如何将 cout 和 cin 放在同一行?