Согласно cppreference.com
спецификатор alignas (начиная с C ++ 11)
Указывает требование выравнивания для типа или объекта.
Синтаксис
alignas ( выражение )
alignas ( идентификатор типа )
alignas ( pack ... )
alignas(expression)
должно быть целочисленным константным выражением с нулевым значением илидопустимое значение для выравнивания или расширенного выравнивания.
Эквивалентно alignas(alignof(type))
Эквивалентно нескольким спецификаторам alignas, примененным к одному и тому же объявлению, одиндля каждого члена пакета параметров, который может быть как типовым, так и нетиповым пакетом параметров.
Так почему же следующее не работает для g ++, clang или VC ++?
struct alignas(1, 4) A {};
или
struct alignas(int, double) A {};
Это дефект?
Редактировать
Видимо, это работает дляg ++ 8.2 и не для clang ++ 8.0 или VC ++ 19.20.27508.1, таким образом, кажется дефектом, и компиляторы не догнали.
Редактировать
Очевидно, что запуск компилятора MinGW g ++ в оболочке cygwin bash вызывает странное поведение,Прекрасно работает при запуске в оболочке bash MinGW.Так что нет, это не работает и в g ++ 8.2.