在C 14中使用自动实现非型模板参数
Achieving non-type template parameters with auto in C++14
是否有一种方法可以模仿C 14中的非类型模板参数中的自动扣除?类似于如何模仿C 14 lambdas中C 11中的无约束参数?
有点。当然,您可以具有非类型模板参数,但是您需要指定类型。常见的成语是:
template <class T, T Value>
struct X;
,但是您无法与之实例化X<3>
。您能做的最好的就是介绍一个宏来为您拔出类型:
#define DECL(expr) decltype(expr), (expr)
X<DECL(3)> x;
3
显然很愚蠢,但是当您想提供函数指针作为非类型模板参数时确实有所帮助。
相关文章:
- 使用非递归插入方法实现 AVL 树
- LLVM |如何实现逻辑非操作的 IR 代码生成
- C++泛型类,单独实现?
- 如何为非常量和常量重载实现一次成员函数?
- 为堆栈实现泛型集合
- 为什么C++不允许两个同名的函数/类模板,区别仅在于非类型模板参数(整型)的类型?
- 在C++中使用克隆方法实现多晶型效果
- 传递非泛型函数的最有效方法是什么?
- 将非类库分离为标头和实现的方法
- 如何在.cpp中实现属于非模板类的模板函数
- std::add_pointer 非静态成员函数的实现
- 自动非型模板参数:clang中的偏见偏专长
- 在C 14中使用自动实现非型模板参数
- 类型和非型模板专业化
- 非型模板参数,构造函数和扣除指南
- C :非型功能指针
- 非型模板的数组
- 类模板专业化可以利用非专业化实现吗
- 运算符<<函数在转储成员函数方面的泛型实现
- 如何在非泛型类型上实现完美转发