Проверьте, насколько поддерживается расширенное выравнивание - PullRequest
0 голосов
/ 24 января 2019

Я реализую шаблонный класс, который позволяет клиенту устанавливать выравнивание некоторых внутренних данных.

Я собираюсь выделить данные с std::align. Документация гласит"поведение не определено, если выравнивание не является фундаментальным или расширенным значением выравнивания, поддерживаемым реализацией (до C ++ 17)".

alignof(std::max_align_t) дает мне максимальное фундаментальное выравнивание, но есть ли какой-либо независимый от платформы способ проверки, является ли значение поддерживаемым расширенным выравниванием в C ++ 14, чтобы защитить меня от неопределенного поведения?

Если нет, я должен обойтись без std::align и выполнить выравнивание самостоятельно?

...