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