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

В настоящее время я пишу некоторый код на 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

Решение

WinAVR устарел, используйте Атмел Студио вместо.

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

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

3

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

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

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