Является ли поддержка языка компилятора общей для всех портов компилятора
Я использую GNU Arm Embedded Toolchain 10-2020-q4-major (arm-none-eabi-* 10.2.1), и я хотел бы воспользоваться преимуществами современных функций C ++.
Поэтому я пытаюсь выяснить, какие функции C ++ (основные функции языка, а также функции libstdc ++) доступны в этой конкретной инструментальной цепочке. Я прочитал эту матрицу https://gcc.gnu.org/projects/cxx-status.html , и, похоже, они не различают разные порты компилятора.
Как мне узнать, могу ли я использовать, например, функции C ++ 17 или C ++ 20?
С уважением, Хьюго
1 ответ
Как вы можете видеть на указанном вами сайте gcc.gnu, перечислены все функции C ++17 и C ++ 20. "Доступно в GCC?" указывает, какая версия компилятора GCC требуется для доступа к данной функции. По сути, это не ваша цепочка инструментов, а компилятор (как часть этой цепочки инструментов), который определяет ваш набор функций.
В вашем случае, когда вы используете компилятор GCC для архитектуры arm-non-eabi, этот набор функций не изменяется, в отличие от версии компилятора. Итак, с вашим arm-non-eabi-g++-10.2.1 у вас должны быть доступны все функции для этой версии компилятора.