On Fri, 3 Dec 2021, 18:58 Dr. Jürgen Sauermann, <m...@juergen-sauermann.de> wrote:
> Hi, > > not sure if this matters or how int can be fixed, but today I observed > the following: > > Your web page says that "Static assertions" are supported by GCC since > version 4.3. > > Today I tried to use "Static assertions" on an avr-g++ resp. avr-gcc > which identifies > itself as: > > eedjsa@server68:~/projects/AVR_workspace/ATMEGA8U2_32U2$ avr-g++ --version > avr-g++ (GCC) 5.4.0 > Copyright (C) 2015 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > eedjsa@server68:~/projects/AVR_workspace/ATMEGA8U2_32U2$ avr-gcc --version > avr-gcc (GCC) 5.4.0 > Copyright (C) 2015 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > but it seems not to support static assertions. > > The "regular" g++ works: > > eedjsa@server68:~/projects/AVR_workspace/ATMEGA8U2_32U2$ echo ' > static_assert(0, "error"); int main() {}' | g++ -S -o /dev/null -x c++ - > <stdin>:2:15: error: static assertion failed: error > > while the avr-g++ fails: > > eedjsa@server68:~/projects/AVR_workspace/ATMEGA8U2_32U2$ echo ' > static_assert(0, "error"); int main() {}' | avr-g++ -S -o /dev/null -x c++ > - > <stdin>:2:14: error: expected constructor, destructor, or type > conversion before ‘(’ token > > Maybe this should be mentioned on the web page. > Static assertions are a C++11 feature, so you simply need to use -std=c++11 or -std=gnu++11