Должна ли библиотека повышения зависеть от выравнивания элементов структуры?
Я нашел,трудный путь, что по крайней мереboost::program_options
зависит от настроенного компилятором выравнивания элементов структуры.
Если вы создаете boost, используя настройки по умолчанию, и связываете его с проектом, используя выравнивание по 4 байта (/Zp4
) он потерпит неудачу во время выполнения (сделал минимальный тест с помощью program_options). Boost сгенерирует утверждение, указывающее на возможное неправильное соглашение о вызовах, но настоящей причиной является выравнивание элементов структуры.
Есть ли способ предотвратить это? Если выравнивание делает код несовместимым, разве это не должно быть включено в именование библиотеки?