Пространства имён
Варианты
Действия

alignof operator (начиная с C++11)

Материал из cppreference.com
< cpp‎ | language

 
 
Язык С++
Общие темы
Управление программой
Операторы условного выполнения
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 
Запросы требования к выравниванию типа
Оригинал:
Queries alignment requirements of a type
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Синтаксис

alignof( type )
Возвращает объект типа std::size_t.
Оригинал:
Returns an object of type std::size_t.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Объяснение

Возвращает выравнивание в байтах (целое число степенью двойки), необходимых для любого экземпляра данного type, который является либо полное тип, тип массива, или ссылки типа.
Оригинал:
Returns alignment in bytes (an integer power of two) required for any instance of the given type, which is either complete type, an array type, or a reference type.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если тип является ссылочным типом, оператор возвращает выравнивание' ссылочного типа, если тип является типом массива, выравнивание требование тип элемента возвращается.
Оригинал:
If the type is reference type, the operator returns the alignment of referenced type; if the type is array type, alignment requirement of the element type is returned.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Типы char, signed char, и unsigned char имеют слабое (маленький) выравнивание поддерживается реализацией.
Оригинал:
The types char, signed char, and unsigned char have the weakest (smallest) alignment supported by the implementation.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Ключевые слова

alignof

[править] Пример

#include <iostream>
 
struct Empty {};
 
struct Foo {
     int f2;
     float f1;
     char c;
};
 
int main()
{
    std::cout << "alignment of empty class: " << alignof(Empty) << '\n'
              << "alignment of pointer : "    << alignof(int*)  << '\n'
              << "alignment of char : "       << alignof(char)  << '\n'
              << "alignment of Foo : "        << alignof(Foo)   << '\n' ;
}

Вывод:

alignment of empty class: 1
alignment of pointer : 8
alignment of char : 1
alignment of Foo : 4

[править] См. также

alignas спецификатор
указывает, что для хранения переменной должны быть согласованы конкретные (C++11) сумму
Оригинал:
specifies that the storage for the variable should be aligned by specific amount (C++11)
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[edit]
получает выравнивания типа требований
Оригинал:
obtains the type's alignment requirements
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон класса) [edit]