Поддержка типов (basic types, RTTI, type traits)
Материал из cppreference.com
< cpp
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
[править] Базовые типы
[править] Основные типы, определенные в языке
[править] Дополнительные типы и макросы
Заголовочный файл
<cstddef> | |
тип беззнакового целого числа возвращаемого оператором sizeof Оригинал: unsigned integer type returned by the sizeof operator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (определение типа) | |
целое число типа возвращается при вычитании двух указателей Оригинал: signed integer type returned when subtracting two pointers Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (определение типа) | |
(C++11) |
тип нулевого указателя литерала nullptr (определение типа) |
определяется реализацией нулевого указателя постоянно Оригинал: implementation-defined null pointer constant Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (константа-макрос) | |
(C++11) |
POD типа с требованием выравнивания так велика, как любой другой тип скаляра Оригинал: POD type with alignment requirement as great as any other scalar type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (определение типа) |
байтовое смещение от начала стандартной верстки типа указанного члена Оригинал: byte offset from the beginning of a standard-layout type to specified member Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция-макрос) | |
Заголовочный файл
<cstdbool> | |
__bool_true_false_are_defined (C++11) |
Макрос для совместимости с языком C, заменяется на 1 (константа-макрос) |
Заголовочный файл
<cstdalign> | |
__alignas_is_defined (C++11) |
Макрос для совместимости с языком C, заменяется на 1 (константа-макрос) |
[править] Целочисленные типы фиксированной ширины (начиная с C++11)
[править] numeric_limits
Заголовочный файл
<limits> | |
предоставляет интерфейс для запроса свойства всех основных числовых типов . Оригинал: provides an interface to query properties of all fundamental numeric types. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
[править] С интерфейс к числовым пределам
[править] Динамическая идентификация типов
содержит информацию о некоторых типов, порожденных implementation. Это класс, возвращается TypeId оператора Оригинал: contains some type's information, generated by the implementation. This is the class, returned by the TypeId operator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (класс) | |
(C++11) |
обертка type_info объект, который может быть использован в качестве индекса в ассоциативном и неупорядоченные ассоциативных контейнеров Оригинал: wrapper around a type_info object, that can be used as index in associative and unordered associative containers Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (класс) |
Исключение, которое возникает, если аргумент в TypeId выражение является недействительным Оригинал: exception that is thrown if an argument in a TypeId выражение is null Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (класс) | |
Исключение, которое выдается на некорректное выражение dynamic_cast, т.е. приведение ссылочного типа не удается Оригинал: exception that is thrown by an invalid dynamic_cast expression, i.e. a cast of reference type fails Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (класс) |
[править] Свойства типов
Свойства типов определяют основанный на шаблонах интерфейс времени компиляции для запроса или изменения свойств типов.
[править] Свойства типов
Заголовочный файл
<type_traits> | |
Оригинал: Primary type categories Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
(C++11) |
проверяет, является ли тип void Оригинал: checks if a type is void Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип целочисленным (шаблон класса) |
(C++11) |
проверяет, является ли тип типом с плавающей запятой (шаблон класса) |
(C++11) |
проверяет, является ли тип является типом массива Оригинал: checks if a type is an array type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип перечислением типа Оригинал: checks if a type is an enumeration type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип объединения типа Оригинал: checks if a type is an union type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
checks if a type is a class type (but not union type) (шаблон класса) |
(C++11) |
проверяет, является ли тип является функцией типа Оригинал: checks if a type is a function type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип указателя Оригинал: checks if a type is a pointer type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип именующее ссылкой Оригинал: checks if a type is lvalue reference Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип RValue ссылкой Оригинал: checks if a type is rvalue reference Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип указателя на не-статический член объекта Оригинал: checks if a type is a pointer to a non-static member object Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип указателя на нестатические функции-члена Оригинал: checks if a type is a pointer to a non-static member function Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Оригинал: Composite type categories Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
(C++11) |
проверяет, является ли тип основного типа Оригинал: checks if a type is fundamental type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип арифметического типа Оригинал: checks if a type is arithmetic type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип скалярного типа Оригинал: checks if a type is scalar type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип объекта типа Оригинал: checks if a type is object type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип соединения типа Оригинал: checks if a type is compound type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип либо именующее ссылкой или' RValue ссылки Оригинал: checks if a type is either lvalue reference or rvalue reference Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
checks if a type is a pointer to a non-static member function or object (шаблон класса) |
Свойства типов | |
(C++11) |
проверяет, является ли тип конструкции квалификацию Оригинал: checks if a type is const-qualified Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип летучих квалификации Оригинал: checks if a type is volatile-qualified Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип тривиально Оригинал: checks if a type is trivial Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
checks if a type is trivially copyable (шаблон класса) |
(C++11) |
проверяет, является ли тип нормативно-макета типа Оригинал: checks if a type is standard-layout type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип обычный старый данных (POD) типа Оригинал: checks if a type is plain-old data (POD) type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
checks if a type is literal type (шаблон класса) |
(C++11) |
checks if a type is class (but not union) type and has no data (шаблон класса) |
(C++11) |
проверяет, является ли тип полиморфного типа класса Оригинал: checks if a type is polymorphic class type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип является абстрактным типом класса Оригинал: checks if a type is abstract class type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет тип подписан арифметического типа Оригинал: checks if a type is signed arithmetic type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип без знака арифметического типа Оригинал: checks if a type is unsigned arithmetic type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Поддерживаемые операции | |
(C++11) (C++11) (C++11) |
проверяет, является ли тип имеет конструктор для конкретных аргументов Оригинал: checks if a type has a constructor for specific arguments Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
проверяет, является ли тип имеет конструктор по умолчанию Оригинал: checks if a type has a default constructor Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) | |
(C++11) (C++11) (C++11) |
проверяет, является ли тип имеет конструктор копирования Оригинал: checks if a type has a copy constructor Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) (C++11) (C++11) |
проверяет, является ли тип имеет ход конструктора Оригинал: checks if a type has a move constructor Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) (C++11) (C++11) |
проверяет, является ли тип имеет оператор присваивания для конкретного аргумента Оригинал: checks if a type has a assignment operator for a specific argument Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) (C++11) (C++11) |
проверяет, является ли тип имеет копирования оператора присваивания Оригинал: checks if a type has a copy assignment operator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) (C++11) (C++11) |
проверяет, является ли тип имеет оператор ход назначения Оригинал: checks if a type has a move assignment operator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) (C++11) (C++11) |
проверяет, является ли тип имеет не удалил деструктор Оригинал: checks if a type has a non-deleted destructor Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
проверяет, является ли тип имеет виртуальный деструктор Оригинал: checks if a type has a virtual destructor Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Запросы свойств | |
(C++11) |
получает выравнивания типа требований Оригинал: obtains the type's alignment requirements Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
получает число измерений массива Оригинал: obtains the number of dimensions of an array type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
получает размер массива типа по указанному измерению Оригинал: obtains the size of an array type along a specified dimension Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Отношения типов | |
(C++11) |
проверяет два типа одинаковы Оригинал: checks if two types are the same Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
checks if a type is derived from the other type (шаблон класса) |
(C++11) |
проверяет, является ли тип может быть преобразован в другой тип Оригинал: checks if a type can be converted to the other type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
[править] Модификация типов
Шаблоны модификации типов создают новые определения типов модифицируя шаблонный параметр. Доступ к результирующему типу может быть получен через type
typedef член.
Заголовочный файл
<type_traits> | |
Оригинал: Const-volatility specifiers Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
(C++11) (C++11) (C++11) |
удаляет const и / или volatile спецификаторы от данного типа Оригинал: removes const or/and volatile specifiers from the given type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) (C++11) (C++11) |
adds const or/and volatile specifiers to the given type (шаблон класса) |
Ссылки | |
(C++11) |
удаляет ссылки из данного типа Оригинал: removes reference from the given type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) (C++11) |
именующее добавляет' или' RValue ссылка на данный тип Оригинал: adds lvalue or rvalue reference to the given type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Указатели | |
(C++11) |
удаляет указатель от данного типа Оригинал: removes pointer from the given type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
добавляет указатель на данного типа Оригинал: adds pointer to the given type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Модификаторы знака | |
(C++11) |
делает данный интегрального типа подписано Оригинал: makes the given integral type signed Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
делает данный интегральный тип без знака Оригинал: makes the given integral type unsigned Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Массивы | |
(C++11) |
удаляет одну степень от данного типа массива Оригинал: removes one extent from the given array type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
removes all extents from the given array type (шаблон класса) |
[править] Прочие преобразования
Заголовочный файл
<type_traits> | |
(C++11) |
определяет тип подходит для использования в качестве неинициализированные для хранения типов заданного размера Оригинал: defines the type suitable for use as uninitialized storage for types of given size Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
определяет тип подходит для использования в качестве неинициализированные для хранения всех данных типов Оригинал: defines the type suitable for use as uninitialized storage for all given types Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
применяется тип преобразований, как при переходе аргумента функции по значению Оригинал: applies type transformations as when passing a function argument by value Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
скрывает перегруженную функцию или специализацию класса, основываясь на логическом значении, известном в момент компиляции (шаблон класса) |
(C++11) |
выбирает один из двух типов в зависимости от логической константы времени компиляции (шаблон класса) |
(C++11) |
deduces the result type of a mixed-mode arithmetic expression (шаблон класса) |
(C++11) |
получает основной целочисленный тип для данного типа перечисления Оригинал: obtains the underlying integer type for a given enumeration type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
выводит тип возвращаемого выражения вызова функции Оригинал: deduces the return type of a function call expression Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
[править] Вспомогательные классы
Заголовочный файл
<type_traits> | |
(C++11) |
константой времени компиляции указанного типа с указанным значением Оригинал: compile-time constant of specified type with specified value Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Представлены две специализации std::integral_constant для типа bool:
Заголовочный файл
<type_traits> | |
Тип | Definition |
true_type
|
std::integral_constant<bool, true> |
false_type
|
std::integral_constant<bool, false> |