为AVR编译c ++ 0x

时间:2014-02-19 18:35:28

标签: c++ gcc avr-gcc

我正在为AVR平台编写一些c ++代码,我想要禁用一些基本上不可复制的东西。鉴于我已经在使用c ++ 0x功能,我认为这样做的一个好方法是使用=delete说明符:

write_only(write_only const&) = delete;

但是当我尝试编译时,我收到以下错误:

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

这表明avr-gcc不支持这种特定的c ++ 0x语言功能。这是我做错了吗?如果没有,那么最好的解决方法是什么?

我正在使用WinAVR-20100110进行编译。

1 个答案:

答案 0 :(得分:3)

WinAVR已过时,请改用Atmel Studio

如果您真的想继续使用WinAVR,请找到gccg++可执行文件并使用-v命令行参数运行它,然后告诉我们它报告的版本。请注意,从版本4.4(link)开始,GCC支持已删除的功能。

无论如何,在编译使用C ++ 11功能或-std=gnu++0x-std=c++11时,您还必须添加-std=gnu++11-std=c++1y-std=gnu++1y参数启用C ++ 14(C ++ 1y)功能。

相关问题