c++ - 如何检查该函数是否真的获得了定义为 const 的变量?
问题描述
给定以下代码:
template <class Func>
void f(Func func , int* param){
func(/* how can I send "param" as const "int*" */);
}
我该怎么做才能使如果f
没有将变量设为 const - 那么我们会得到错误?
解决方案
如果你想确保它f
接受一个指向 const-qualified int 的指针,你可以适当地转换函数参数:
f(static_cast<int const *>(param));
或者,如果要确保f
接受对 const 限定指针的引用,可以将 const 限定符添加到函数参数:
void f(Func f , int * const param)
推荐阅读
- nestjs - 在nestjs服务器上发布Formdata
- reactjs - 客户使用 Paypal 付款并立即离开网站导致他没有收到商品
- xv6 - 如何在 xv6 中使用 kbgetc
- c++ - Mingw32 无法静态链接到 libgcc_s_dw2-1、libstdc++-6、libwinpthread-1 (Qt 5.7.1)
- bash - 如何替换文本文件中周期性出现的数组
- python - 创建包含给定值和日期范围的所有可能性的字典的最佳方法是什么?
- console - 自几周前 Google 更新以来,是否有人在他们的操作中也遇到过故障?
- go - 使用切片的动态结构(包含外键)和 go-gorm 将数据插入数据库
- xslt - 如何使用 XSLT 将所有标题文本转换为标题大小写?
- javascript - 如何在 React 的 return 语句中使用获取结果?