首页 > 解决方案 > 如何检查该函数是否真的获得了定义为 const 的变量?

问题描述

给定以下代码:

template <class Func>
void f(Func func , int* param){
   func(/* how can I send "param" as const "int*" */);
}

我该怎么做才能使如果f没有将变量设为 const - 那么我们会得到错误?

标签: c++c++11constants

解决方案


如果你想确保它f接受一个指向 const-qualified int 的指针,你可以适当地转换函数参数:

f(static_cast<int const *>(param));

或者,如果要确保f接受对 const 限定指针的引用,可以将 const 限定符添加到函数参数:

void f(Func f , int * const param)

推荐阅读