У меня есть следующий фрагмент кода C++:
class T { };
void f(const T**) { }
int main() {
T *x = new T[5];
f(&x);
}
При попытке компиляции g++ сообщает о некорректном преобразовании из 'T**' в 'const T**'
. Я провел некоторое исследование и понял эту ошибку. Типичное решение - изменить определение f(const T**)
на f(const T* const*)
, что сразу устраняет проблему.
К сожалению, в моем случае f
- это функция из другой библиотеки, и я не могу изменить определение f. Как я могу передать адрес x
в f
?