Поддержка типов (basic types, RTTI, type traits)
Материал из cppreference.com
< cpp
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
[править] Базовые типы
[править] Основные типы, определенные в языке
[править] Дополнительные типы и макросы
| Заголовочный файл
<cstddef> | |
| Тип беззнакового целого числа, возвращаемого оператором sizeof (определение типа) | |
| целое число типа возвращается при вычитании двух указателей Оригинал: signed integer type returned when subtracting two pointers Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (определение типа) | |
| (C++11) |
тип нулевого указателя литерала nullptr (определение типа) |
| Определяемая реализацией константа для нулевого указателя (константа-макрос) | |
| (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. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) | |
[править] С интерфейс к числовым пределам
[править] Динамическая идентификация типов
| Содержит информацию о некотором типе, cгенерированную реализацией. Этот класс возвращается оператором typeid (класс) | |
| (C++11) |
Обёртка для объекта типа type_info, которая позволяет использовать объекты этого типа в качестве индекса в ассоциативных и неупорядоченных ассоциативных контейнерах (класс) |
| Исключение, которое возникает, если аргумент в typeid операторе равен null (класс) | |
| Исключение, которое возникает на некорректное выражение dynamic_cast, т.е. приведение ссылочного типа не удаётся (класс) | |
[править] Свойства типов
Свойства типов определяют основанный на шаблонах интерфейс времени компиляции для запроса или изменения свойств типов.
[править] Свойства типов
| Заголовочный файл
<type_traits> | |
Оригинал: Primary type categories Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
| (C++11) |
Проверяет является ли тип void или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип целочисленным или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом с плавающей запятой или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом массива или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом перечисления или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом объединения или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом класса (но не объединения) или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом функции или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом указателя или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом левосторонней ссылки или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип правосторонней ссылкой или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом указателя на нестатический член объекта или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом указателя на нестатическую функцию-член или нет (шаблон класса) |
Оригинал: Composite type categories Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
| (C++11) |
Проверяет является ли тип фундаментальным или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип арифметическим или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип скалярным или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип объектным или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип составным или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип или левосторонней, или правосторонней ссылкой или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип указателем на нестатический член объекта (шаблон класса) |
Свойства типов | |
| (C++11) |
Проверяет содержит ли тип в себе квалификатор const или нет (шаблон класса) |
| (C++11) |
Проверяет содержит ли тип в себе квалификатор volatile или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип тривиальным или нет (шаблон класса) |
| (C++11) |
Проверяет является ли класс тривиальнокопируемым или нет (шаблон класса) |
| (C++11) |
Проверяет имеет ли класс стандартную компоновку или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом простой структуры данных или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип литеральным или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип классом (но не объединением), который не содержит в себе никаких данных или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом полиморфного класса или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип типом абстрактного класса или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип знаковым арифметическим типом или нет (шаблон класса) |
| (C++11) |
Проверяет является ли тип беззнаковым арифметическим типом или нет (шаблон класса) |
Поддерживаемые операции | |
| (C++11) (C++11) (C++11) |
Проверяет имеет ли тип конструктор для конкретных аргументов или нет (шаблон класса) |
| Проверяет имеет ли тип конструктор по умолчанию или нет (шаблон класса) | |
| (C++11) (C++11) (C++11) |
Проверяет имеет ли тип конструктор копирования или нет (шаблон класса) |
| (C++11) (C++11) (C++11) |
Проверяет имеет ли тип конструктор переноса или нет (шаблон класса) |
| (C++11) (C++11) (C++11) |
Проверяет имеет ли тип оператор присваивания для конкретного аргумента или нет (шаблон класса) |
| (C++11) (C++11) (C++11) |
Проверяет имеет ли тип оператор присваивания с копированием или нет (шаблон класса) |
| (C++11) (C++11) (C++11) |
Проверяет имеет ли тип оператор присваивания с переносом или нет (шаблон класса) |
| (C++11) (C++11) (C++11) |
Проверяет имеет ли тип не удалённый деструктор или нет (шаблон класса) |
| (C++11) |
Проверяет имеет ли тип виртуальный деструктор или нет (шаблон класса) |
Запросы свойств | |
| (C++11) |
Получает требования к выравниванию типа (шаблон класса) |
| (C++11) |
Получает число измерений массива (шаблон класса) |
| (C++11) |
Получает размер массива типа по указанному измерению (шаблон класса) |
Отношения типов | |
| (C++11) |
Проверяет одинаковы ли два типа или нет (шаблон класса) |
| (C++11) |
Проверяет наследуется ли тип от другого или нет (шаблон класса) |
| (C++11) |
Проверяет может ли тип преобразован в другой или нет (шаблон класса) |
[править] Модификация типов
Шаблоны модификации типов создают новые определения типов модифицируя шаблонный параметр. Доступ к результирующему типу может быть получен через type typedef член.
| Заголовочный файл
<type_traits> | |
Оригинал: Const-volatility specifiers Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
| (C++11) (C++11) (C++11) |
Удаляет const и/или volatile квалификаторы от данного типа (шаблон класса) |
| (C++11) (C++11) (C++11) |
Добавляет const или/и volatile квалификаторы к данному типу (шаблон класса) |
Ссылки | |
| (C++11) |
Удаляет ссылку из данного типа (шаблон класса) |
| (C++11) (C++11) |
Добавляет левостороннюю или правостороннюю ссылку (шаблон класса) |
Указатели | |
| (C++11) |
Удаляет указатель от данного типа (шаблон класса) |
| (C++11) |
Добавляет указатель на данный тип (шаблон класса) |
Модификаторы знака | |
| (C++11) |
Делает данный целочисленный тип знаковым (шаблон класса) |
| (C++11) |
Делает данный целочисленный тип беззнаковым (шаблон класса) |
Массивы | |
| (C++11) |
Удаляет одно измерение от данного типа массива (шаблон класса) |
| (C++11) |
Удаляет все измерения от данного типа массива (шаблон класса) |
[править] Прочие преобразования
| Заголовочный файл
<type_traits> | |
| (C++11) |
Определяет тип, подходящий для использования в качестве неинициализированного хранилища для типов заданного размера (шаблон класса) |
| (C++11) |
Определяет тип, подходящий для использования в качестве неинициализированного хранилища для всех данных типов (шаблон класса) |
| (C++11) |
Применяет преобразования как при передаче аргумента функции по значению (шаблон класса) |
| (C++11) |
Скрывает перегруженную функцию или специализацию класса, основываясь на логическом значении, известном в момент компиляции (шаблон класса) |
| (C++11) |
Выбирает один из двух типов в зависимости от логической константы времени компиляции (шаблон класса) |
| (C++11) |
Выводит общий для заданных типов тип (шаблон класса) |
| (C++11) |
Получает внутрилежащий целочисленный тип для данного типа перечисления (шаблон класса) |
| (C++11) |
Выводит возвращаемый тип при вызове функции (шаблон класса) |
[править] Вспомогательные классы
| Заголовочный файл
<type_traits> | |
| (C++11) |
Константа времени компиляции указанного типа с указанным значением (шаблон класса) |
Представлены две специализации std::integral_constant для типа bool:
| Заголовочный файл
<type_traits> | |
| Тип | Definition |
true_type
|
std::integral_constant<bool, true> |
false_type
|
std::integral_constant<bool, false> |

