c ++ const_cast gcc 8.2.1 -Wignored-квалификаторы ошибка?

Следующая программа производит это с помощью gcc 8.2.1:

предупреждение: спецификаторы типа игнорируются в типе результата приведения [-Wignored-qualifiers] int * const ptrCast = const_cast (ptr);

int main() {
int i = 0;
const int * const ptr = &i;
int * const ptrCast = const_cast<int * const>(ptr);

return *ptrCast;
}

Скомпилировано как: gcc -Wignored-qualifiers test.cc

Из моего понимания const_cast это не должно давать предупреждение. Кто-нибудь может это проверить?

0

Решение

Я думаю, что вы неправильно поняли предупреждение.

Дело не в отсутствии const Вот:

const_cast<      int * const>(ptr)
//         const

Скорее, речь идет о наличии const Вот:

const_cast<int * const>(ptr)
//               ^~~~~

Вот const имеет абсолютно нулевой эффект и может быть удален, вот что говорит предупреждение.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]