reinterpret_cast из типа ‘const char *’ в тип ‘__FlashStringHelper *’ отбрасывает квалификаторы

Я хочу использовать библиотеку Adafruit_CC3000 Arduino в AVR Studio. Я следовал этот Инструкция по использованию Adafruit Arduino lib с AVR studio, чтобы я мог использовать другие функции AVR тоже. Но я получаю ту же ошибку 50 раз, пока я компилирую код.

Ошибка 5 reinterpret_cast из типа ‘const char *’ для типа
‘__FlashStringHelper *’ отбрасывает
квалификаторы E: \ arduino-1.0.1 \ library \ Adafruit_CC3000 \ Adafruit_CC3000.cpp 183 3 ATmega32_WSClient_CC3K

Я искал в Интернете такие ошибки. но я не смог понять проблему. Я прошу дать мне понять, что в этом коде является причиной этой ошибки?

1

Решение

reinterpret_cast может конвертировать между несвязанными типами указателей, но не может удалить const или же volatile классификаторы. Тебе нужно const_cast для этого.

Варианты есть (примерно в порядке возрастания гадости):

  • во-первых, не используйте неправильный тип указателя;
  • приведение к const __FlashStringHelper*, если вам не нужно изменять объект;
  • кастом из char* если вам нужно изменить его;
  • использование reinterpret_cast<__FlashStringHelper*>(const_cast<char*>(whatever)) или грубая сила (__FlashStringHelper*)whatever если вы настаиваете на том, чтобы полностью отказаться от системы типов.
12

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


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector