函数值参数的常量特征?
Trait for const-ness of a function's value parameters?
是否可以使用trait或其他方法来确定函数(或方法)的值参数是否声明为const?例如,在下面的代码中,使用fn_params
可以发现第一个参数具有const int *
类型;然而,第二个参数仅被识别为类型为double
。
float foo(const int *, const double) { return 7.6f; }
template <typename T, typename ...Ts>
struct fn_params<T(*)(Ts...)> { using type = std::tuple<Ts...>; };
不,没有,主要是因为没有办法确定函数可以接受哪些参数。即使在模板这样的简单情况下,您的查询也是模棱两可的,即使正常的演绎规则会使参数非const,也可以用const类型显式实例化,更不用说重载和类似的事情了。
在询问形参是否为const之前,必须知道形参是什么,而这是不可能的。
相关文章:
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 什么时候在C++中返回常量引用是个好主意
- 代理对象的常量正确性
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 通过多个头文件使用常量变量
- 在cuda线程之间共享大量常量数据
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 是默认情况下分配给char数组常量的值
- 私有类型的静态常量成员
- 类似枚举的计算常量
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么我不能将 op 结果乘以常量特征张量数组
- 用于将静态字符串常量与类型相关联的类型特征模式
- 键入特征以区分常量字符 [N] 和 std::string
- NVIDIA NVCC 在使用模板特征类型时更改编译时间常量
- 初始化头文件中的常量特征矩阵
- 函数值参数的常量特征?