В C++ для некоторого типа T, как я могу получить "const T**" из "T**"?

У меня есть следующий фрагмент кода 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?

0
задан Community 23 May 2017 в 12:12
поделиться