Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

alignment_of

Boost , Chapter 1. Boost.TypeTraits , Alphabetical Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
template <class T>
struct alignment_of : public integral_constant<std::size_t, ALIGNOF(T)> {};

Наследники:Шаблон класса<alignment_of>наследуется от<integral_constant<std::size_t,ALIGNOF(T)>>, где<ALIGNOF(T)>— выравнивание типа Т.

Note: strictly speaking you should only rely on the value of ALIGNOF(T) being a multiple of the true alignment of T, although in practice it does compute the correct value in all the cases we know about.

Header: #include <boost/type_traits/alignment_of.hpp> or #include <boost/type_traits.hpp>

Examples:

<alignment_of<int>>наследуется от<integral_constant<std::size_t,ALIGNOF(int)>>.

<alignment_of<char>::type>является типом<integral_constant<std::size_t,ALIGNOF(char)>>.

<alignment_of<double>::value>является интегральным постоянным выражением со значением<ALIGNOF(double)>.

<alignment_of<T>::value_type>является типом<std::size_t>.

[Important]Important

Пользователи Visual C++ должны отметить, что MSVC имеет различные определения «выравнивания». Рассмотрим, например, следующий код:

typedef long long align_t;
assert(boost::alignment_of<align_t>::value % 8 == 0);
align_t a;
assert(((std::uintptr_t)&a % 8) == 0);
char c = 0;
align_t a1;
assert(((std::uintptr_t)&a1 % 8) == 0);

В этом коде, даже если<boost::alignment_of<align_t>>сообщает, что<align_t>имеет 8-байтовое выравнивание, окончательное утверждение не будет выполнено для 32-битной сборки, потому что<a1>не выровнена на 8-байтовой границе. Обратите внимание, что если бы мы использовали MSVC<__alignof>вместо<boost::alignment_of>, мы все равно получили бы тот же результат. Фактически, требования к выравниванию MSVC (и обещания) действительно применимы только к динамическому хранению, а не к стеку.


PrevUpHomeNext

Статья alignment_of раздела Chapter 1. Boost.TypeTraits Alphabetical Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Alphabetical Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 02:38:52/0.0036349296569824/0