On 12/3/21 9:12 PM, Jonathan Wakely wrote:


On Fri, 3 Dec 2021, 18:58 Dr. Jürgen Sauermann, <m...@juergen-sauermann.de <mailto: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


Hi Jonathan,

thanks a lot. This works indeed, even with avr-gcc/g++.




Reply via email to