对于模糊的标题,我深表歉意,但我想创建一个模板类,该模板类是为指向函数指针的某个指针定义的。目前,我有这个:
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{};
如果我们需要获取TCons
和TDes
的类型,我们可以使用decltype
。
关于c++ - 如何使用类的类型作为模板的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29662516/