Ответ 1
Мне кажется, что это ошибка. Ваш синтаксис совершенно корректен и принят новейшими версиями GCC
и Clang
.
Прежде всего, важно, какую версию Intel C++ Compiler
вы используете в настоящее время.
Согласно этот документ:
3.2 Новые и измененные функции
С++ Composer XE 2015 теперь содержит Intel® С++ Compiler XE 15.0. следующие функции являются новыми или значительно улучшены в этой версии:
- [...]
Полная поддержка языка С++ 11 (включает в себя эту функцию, новую для 15.0) (/Qstd = С++ 11):
- категории значений (N3055)
- alignas и alignof (N2341)
- расширения decltype (N3049, N3276)
- наследующие конструкторы (N2540)
- пользовательские литералы (N2765)
- thread_local (N2659)
Прежде всего, обратите внимание на наличие alignas
в списке - вы можете считать полную (или, по крайней мере, "улучшенную по сравнению с предыдущей версией" ) поддержку этих функций, начиная с ICC 15.0
. Во-вторых, "новое или значительно усиленное" не соответствует "полностью поддержано", если вы спросите меня.
Это резюме также подтверждает поддержку функций выравнивания в этой версии.
Он отмечает, однако, что:
Для поддержки Full С++ 11 требуется среда gcc 4.8 или новее в Linux.
Я также столкнулся с этим, что может указывать на то, что не все работает должным образом.
Как выяснил @Simon, это подтвержденная проблема (или, точнее, отсутствие поддержки), и было сообщено. Номер трекера DPD200361116. В этой теме можно найти . Если кто-то еще столкнется с этой проблемой, я предлагаю отслеживать обновления на этой странице, они будут опубликованы наверняка.