Как я могу проверить, что функция действительно получает переменную, которая определена как const? - PullRequest
0 голосов
/ 29 июня 2018

С учетом следующего кода:

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

Как я могу это сделать, чтобы, если f не получил переменную как const, мы получили ошибку?

1 Ответ

0 голосов
/ 29 июня 2018

Если вы хотите убедиться, что f принимает указатель на const-квалифицированную int, вы можете соответствующим образом привести аргумент функции:

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

В качестве альтернативы, если вы хотите убедиться, что f принимает ссылку на указатель с константным указателем, вы можете добавить спецификатор const к аргументу функции:

void f(Func f , int * const param)
...