Компиляция c ++ 0x для AVR

0

В настоящее время я пишу код c++ для платформы AVR, и я хочу отключить что-то, что принципиально не копируется. Учитывая, что я уже использую функции c++ 0x, я думал, что хорошим способом сделать это будет использование спецификатора =delete:

write_only(write_only const&) = delete;

Однако, когда я пытаюсь скомпилировать это, я получаю следующую ошибку:

error: invalid pure specifier (only '= 0' is allowed) before ';' token

Это говорит о том, что эта особенность c++ 0x не поддерживается avr-gcc. Я что-то делаю неправильно? Если нет, то каково наилучшее обходное решение для этого?

Я использую WinAVR-20100110 для компиляции.

  • 0
    Какая версия вашего компилятора?
  • 0
    @JoachimPileborg, я использую WinAVR-20100110, относительно того, какая версия GCC основана на этом, я немного не уверен. У меня есть подозрение, что это может быть GCC 4.3.2, хотя.
Теги:
gcc
avr-gcc

1 ответ

3
Лучший ответ

WinAVR устарел, вместо этого используйте Atmel Studio.

Если вы действительно хотите продолжить работу с WinAVR, найдите исполняемый файл gcc или g++ и запустите его с -v аргумента командной строки -v, а затем сообщите нам, какую версию он сообщает. Обратите внимание, что удаленные функции поддерживаются в GCC начиная с версии 4.4 (ссылка).

В любом случае вы должны добавить -std=gnu++0x или -std=c++11 или -std=gnu++11 параметров при компиляции для использования возможностей С++ 11, или -std=c++1y или -std=gnu++1y чтобы включить функции С++ 14 (С++ 1y).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню