Я пишу несколько классов и структур, которые могут выиграть от 16-байтового выравнивания. Вместо использования хаков, специфичных для компилятора, я бы предпочел использовать новую функциональность C ++ 0x alignas
для будущей переносимости. Однако использование его вне соответствующих #ifdef
или #ifndef
средств защиты, очевидно, приведет к ошибкам на компиляторах без поддержки alignas
.
Я сделал быстрый поиск похожих вопросов, и у ближайшего совпадения был ответ, рекомендовавший Boost.Config
. К сожалению, Boost.Config
, похоже, не включает никаких функций для запроса поддержки alignas
. Есть ли другие #ifdef
s или #ifndef
s, которые я могу использовать, чтобы выяснить, поддерживает ли это компилятор?
Спасибо!