|  | 
|      | 
|  | 
| RationaleBoost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 3. Boost.Align
  
   | ||||||||||||||||||
| Проблема | Решение | 
|---|---|
|   |   | 
|   |   | 
|   |   | 
|   |   | 
|   |   | 
C++11 предоставляет std::align в стандартной библиотеке для выравнивания значения указателя. К сожалению, некоторые реализации стандартных библиотек C++ пока не поддерживают его (libstdc++, например, gcc 4.8.0) и другие реализации стандартных библиотек реализуют его неправильно (dinkumware в msvc 11.0). Эта библиотека предоставляет его для этих реализаций, а также для компиляторов C++03, где он одинаково полезен.
C++11 предоставил в стандартной библиотеке std::выравнивание_ для запроса требования к выравниванию типа. К сожалению, некоторые поставщики стандартных библиотек C++ не реализуют его полностью стандартным образом, например, для типов массивов (libc++ до 3.4). Другие реализации поставщиков сообщают о неправильных значениях для определенных типов, таких как указатель на участников (msvc 14.0). Эта библиотека предоставляет его для этих реализаций, а также для компиляторов C++03, где он одинаково полезен.
Выделения выровненной памяти иногда недостаточно для обеспечения оптимального кода. Разработчики используют специальные внутренние компиляторы для уведомления компилятора о заданном свойстве выравнивания блока памяти. Эта библиотека предоставляет макрос для абстрагирования этой функциональности для компиляторов с соответствующими внутренними элементами.
Эта библиотека предоставляет функцию для проверки выравнивания значения указателя. Как правило, в утверждениях полезно подтвердить, что память правильно выровнена.
Статья Rationale раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 3. Boost.Align может быть полезна для разработчиков на c++ и boost.
:: Главная :: Chapter 3. Boost.Align ::
| реклама |