Spec-Zone.ru › C++

Именованные требования

Именованные требования, перечисленные на этой странице, являются именованными требованиями, используемыми в нормативном тексте стандарта C++, для определения ожиданий стандартной библиотеки.

Некоторые из этих требований формализуются в C++20 с использованием языка концепций. До этого момента программист несёт ответственность за то, чтобы шаблоны библиотек были инстанцированы с аргументами шаблона, которые удовлетворяют этим требованиям. Невыполнение этого может привести к очень сложным диагностикам компилятора.

Основные

DefaultConstructible
указывает, что объект типа может быть создан по умолчанию
(именованное требование)
MoveConstructible
(C++11)
указывает, что объект типа может быть создан из rvalue
(именованное требование)
CopyConstructible
указывает, что объект типа может быть создан из lvalue
(именованное требование)
MoveAssignable
(C++11)
указывает, что объект типа может быть присвоен из rvalue
(именованное требование)
CopyAssignable
указывает, что объект типа может быть присвоен из lvalue
(именованное требование)
Destructible
указывает, что объект типа может быть уничтожен
(именованное требование)

Свойства типов

Примечание: стандарт не определяет именованные требования с именами, указанными в этой подкатегории.
Это категории типов, определённые основным языком. Они включены сюда как именованные требования только для согласованности.
ScalarType
типы объектов, которые не являются типами массивов или типами классов
(именованное требование)
PODType
(устарело в C++20)
типы POD (Plain Old Data), совместимые с C struct
(именованное требование)
TriviallyCopyable
(C++11)
объекты этих типов могут сохранять свои значения после копирования своих подлежащих байтов
(именованное требование)
TrivialType
(C++11)
объекты этих типов могут быть тривиально созданы и скопированы
(именованное требование)
StandardLayoutType
(C++11)
эти типы полезны для взаимодействия с кодом, написанным на других языках программирования
(именованное требование)
ImplicitLifetimeType
объекты этих типов могут быть неявно созданы, и их жизненный цикл может быть неявно начат
(именованное требование)

Вся библиотека

EqualityComparable
operator== является отношением эквивалентности
(именованное требование)
LessThanComparable
operator< является отношением строгой слабой упорядоченности
(именованное требование)
Swappable
может быть поменяно местами с вызовом неуправляемой нечленной функции swap()
(именованное требование)
ValueSwappable
(C++11)
LegacyIterator, который обращается к Swappable типу
(именованное требование)
NullablePointer
(C++11)
тип, похожий на указатель, поддерживающий значение null
(именованное требование)
Hash
(C++11)
FunctionObject, который для входов с разными значениями имеет низкую вероятность получения одного и того же выхода
(именованное требование)
Allocator
тип класса, содержащий информацию об выделении памяти
(именованное требование)
FunctionObject
объект, который может быть вызван с помощью синтаксиса вызова функции
(именованное требование)
Callable
тип, для которого определена операция invoke
(именованное требование)
Predicate
FunctionObject, который возвращает значение, преобразуемое в bool для одного аргумента без его изменения
(именованное требование)
BinaryPredicate
FunctionObject, который возвращает значение, преобразуемое в bool для двух аргументов без их изменения
(именованное требование)
Compare
BinaryPredicate, который устанавливает отношение упорядоченности
(именованное требование)

Контейнер

Контейнер
структура данных, позволяющая получать доступ к элементам с помощью итераторов
(имя требования)
ОбратимыйКонтейнер
контейнер, использующий двунаправленные итераторы
(имя требования)
КонтейнерСAllocator
(C++11)
контейнер, использующий allocator
(имя требования)
ПоследовательныйКонтейнер
контейнер с линейно упорядоченными элементами
(имя требования)
СмежныйКонтейнер
(C++17)
контейнер с элементами, расположенными по смежным адресам памяти
(имя требования)
АссоциативныйКонтейнер
контейнер, хранящий элементы, сопоставляя их с ключами
(имя требования)
НеупорядоченныйАссоциативныйКонтейнер
(C++11)
контейнер, хранящий элементы в корзинах, сопоставляя их с ключами
(имя требования)
Элемент контейнера
ДоступныйПоУмолчанию
(C++11)
элемент может быть создан по умолчанию в неинициализированном хранилище
(имя требования)
Копируемый
(C++11)
элемент может быть скопирован в неинициализированное хранилище
(имя требования)
Перемещаемый
(C++11)
элемент может быть перемещён в неинициализированное хранилище
(имя требования)
КонструкторEmplace
(C++11)
элемент может быть создан в неинициализированном хранилище
(имя требования)
Удалимый
(C++11)
элемент может быть удалён с помощью allocator
(имя требования)

Итератор

Итератор
общее понятие для доступа к данным в структуре данных
(имя требования)
ВводнойИтератор
итератор, который может использоваться для чтения данных
(имя требования)
ВыводнойИтератор
итератор, который может использоваться для записи данных
(имя требования)
ПрямойИтератор
итератор, который может использоваться для многократного чтения данных
(имя требования)
ДвунаправленныйИтератор
итератор, который может быть как инкрементирован, так и декрементирован
(имя требования)
ИтераторСлучайногоДоступа
итератор, который может быть продвинут за константное время
(имя требования)
СмежныйИтератор
(C++17)
итератор для элементов со смежным расположением в памяти
(имя требования)
КонстантныйИтератор
(C++20)
итератор, который может быть использован во время вычисления константных выражений
(имя требования)

Функции ввода/вывода потоков

ФункцияНеформатированногоВвода
функция ввода потока, которая не пропускает начальные пробелы и считает обработанные символы
(имя требования)
ФункцияФорматированногоВвода
функция ввода потока, которая пропускает начальные пробелы
(имя требования)
ФункцияНеформатированногоВывода
базовая функция вывода потока
(имя требования)
ФункцияФорматированногоВывода
функция вывода потока, которая устанавливает флаг ошибки при ошибках и возвращает ссылку на поток
(имя требования)

Форматировщики

БазовыйФорматировщик
(C++20)
абстрагирует операции форматирования для заданного типа аргумента форматирования и типа символа
(имя требования)
Форматировщик
(C++20)
определяет функции, используемые библиотекой форматирования форматирования
(имя требования)

Генерация случайных чисел

ПоследовательностьЗатравок
(C++11)
потребляет последовательность целых чисел и генерирует последовательность 32-битных беззнаковых значений
(имя требования)
ГенераторСлучайныхБитов
(C++11)
возвращает равномерно распределённые случайные беззнаковые целые числа
(имя требования)
ДвигательСлучайныхЧисел
(C++11)
детерминированный ГенераторСлучайныхБитов, определяемый затравкой
(имя требования)
АдаптерДвигателяСлучайныхЧисел
(C++11)
ДвигательСлучайныхЧисел, преобразующий вывод другого ДвигателяСлучайныхЧисел
(имя требования)
РаспределениеСлучайныхЧисел
(C++11)
возвращает случайные числа, распределённые в соответствии с заданной математической функцией плотности вероятности
(имя требования)

Параллельность

BasicLockable
(C++11)
обеспечивает семантику исключительной владения для агентов выполнения (т.е. потоков)
(имя требования)
Lockable
(C++11)
BasicLockable, поддерживающий попытку получения блокировки
(имя требования)
TimedLockable
(C++11)
Lockable, поддерживающий получение блокировки с тайм-аутом
(имя требования)
SharedLockable
(C++14)
обеспечивает семантику совместной владения для агентов выполнения (т.е. потоков)
(имя требования)
SharedTimedLockable
(C++14)
SharedLockable, поддерживающий получение блокировки с тайм-аутом
(имя требования)
Mutex
(C++11)
Lockable, защищающий от гонок данных и обеспечивающий последовательную синхронизацию
(имя требования)
TimedMutex
(C++11)
TimedLockable, защищающий от гонок данных и обеспечивающий последовательную синхронизацию
(имя требования)
SharedMutex
(C++17)
Mutex, поддерживающий семантику совместной владения
(имя требования)
SharedTimedMutex
(C++14)
TimedMutex, поддерживающий семантику совместной владения
(имя требования)

Диапазоны

ОбъектАдаптераДиапазона
(C++20)
FunctionObject, создающий адаптер диапазона из диапазона и дополнительных аргументов
(имя требования)
ОбъектЗакрытияАдаптераДиапазона
(C++20)
FunctionObject, поддерживающий оператор конвейера
(имя требования)

Другое

ОдноместныйТипХарактеристика
(C++11)
описывает свойство типа
(имя требования)
ДвуместныйТипХарактеристика
(C++11)
описывает отношение между двумя типами
(имя требования)
ПреобразованиеХарактеристика
(C++11)
изменяет свойство типа
(имя требования)
Часы
(C++11)
агрегирует длительность, момент времени и функцию получения текущего момента времени
(имя требования)
ТривиальныеЧасы
(C++11)
Часы, которые не выбрасывают исключений
(имя требования)
CharTraits
определяет типы и функции для типа символа
(имя требования)
БитоваяМаскаТип
битовая маска, целое число или перечисление
(имя требования)
ЧисловойТип
тип, для которого инициализация фактически равна присваиванию
(имя требования)
RegexTraits
(C++11)
определяет типы и функции, используемые библиотекой регулярных выражений
(имя требования)
ТипЛитерала
(C++11)
тип с конструктором constexpr
(имя требования)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API