我正在为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进行编译。
答案 0 :(得分:3)
WinAVR已过时,请改用Atmel Studio。
如果您真的想继续使用WinAVR,请找到gcc
或g++
可执行文件并使用-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)功能。