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

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

Материал из cppreference.com
< cpp
 
 
Именованные требования в C++
Основы
Свойства типа
В масштабах библиотеки
Контейнер
Элементы Контейнера
Итератор
Потоковый Ввод/Вывод
Форматирование
(C++20)
Случайные Числа
Конкуренция
(C++11)
(C++11)
Другое
 

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

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

Содержание

Основы

указывает, что объект типа может быть сконструирован по умолчанию
(именованное требование)
указывает, что объект типа может быть построен из rvalue
(именованное требование)
указывает, что объект типа может быть построен из lvalue
(именованное требование)
указывает, что объекту типа может быть присвоено rvalue
(именованное требование)
указывает, что объекту типа может быть присвоено lvalue
(именованное требование)
указывает, что объект данного типа может быть уничтожен
(именованное требование)

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

Примечание: стандарт не определяет именованные требования с именами, указанными в этой подкатегории.
Это категории типов, определяемые основным языком. Они включены здесь как именованные требования только для единообразия.
типы объектов, которые не являются типами массивов или типами классов
(именованное требование)
Типы POD (Обычные Старые Данные - Plain Old Data), совместимые с C struct
(именованное требование)
объекты этих типов могут сохранять свои значения после копирования их базовых байтов
(именованное требование)
объекты этих типов могут быть тривиально созданы и скопированы
(именованное требование)
эти типы полезны для взаимодействия с кодом, написанным на других языках программирования
(именованное требование)
объекты этих типов могут быть созданы неявно, и их время жизни может начаться неявно
(именованное требование)

В масштабах библиотеки

operator== является отношением эквивалентности
(именованное требование)
operator< является отношением строгого квазиупорядочивания
(именованное требование)
(C++11)
может быть заменён неквалифицированным вызовом функции, не являющейся элементом swap()
(именованное требование)
LegacyIterator разыменованный в тип Swappable
(именованное требование)
указатель-подобный тип, поддерживающий нулевое значение
(именованное требование)
(C++11)
FunctionObject, который на входе с разными значениями имеет низкую вероятность выдачи одного и того же выхода
(именованное требование)
тип класса, который содержит информацию о распределении памяти
(именованное требование)
объект, который можно вызвать с помощью синтаксиса вызова функции
(именованное требование)
тип, для которого определена операция вызова
(именованное требование)
FunctionObject, который возвращает значение, которое можно преобразовать в bool для одного аргумента, не изменяя его
(именованное требование)
FunctionObject, который возвращает значение, которое можно преобразовать в bool для двух аргументов, не изменяя их
(именованное требование)
BinaryPredicate устанавливающий отношение порядка
(именованное требование)

Контейнер

структура данных, которая обеспечивает доступ к элементам с помощью итераторов
(именованное требование)
контейнер, использующий двунаправленные итераторы
(именованное требование)
контейнер, использующий аллокатор
(именованное требование)
контейнер с элементами, хранящимися линейно
(именованное требование)
контейнер с элементами, хранящимися в соседних адресах памяти
(именованное требование)
контейнер, который хранит элементы, связывая их с ключами
(именованное требование)
контейнер, в котором хранятся элементы, хранящиеся в корзинах, путём связывания их с ключами
(именованное требование)
Элемент контейнера
элемент может быть сконструирован по умолчанию в неинициализированном хранилище
(именованное требование)
элемент может быть сконструирован копированием в неинициализированное хранилище
(именованное требование)
элемент может быть сконструирован перемещением в неинициализированное хранилище
(именованное требование)
элемент может быть построен в неинициализированном хранилище
(именованное требование)
(C++11)
элемент может быть уничтожен с помощью аллокатора
(именованное требование)

Итератор

общая концепция доступа к данным в некоторой структуре данных
(именованное требование)
итератор, который можно использовать для чтения данных
(именованное требование)
итератор, который можно использовать для записи данных
(именованное требование)
итератор, который можно использовать для многократного чтения данных
(именованное требование)
итератор, который можно как инкрементировать, так и декрементировать
(именованное требование)
итератор, который можно продвигать за постоянное время
(именованное требование)
итератор для размещённых смежно элементов
(именованное требование)
итератор, который можно использовать во время вычисления константного выражения
(именованное требование)

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

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

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

принимает последовательность целых чисел и производит последовательность 32-битных значений без знака
(именованное требование)
возвращает равномерно распределённые случайные целые числа без знака
(именованное требование)
детерминированный UniformRandomBitGenerator, определяемый начальным значением
(именованное требование)
RandomNumberEngine который преобразует вывод другого RandomNumberEngine
(именованное требование)
возвращает случайные числа, распределенные в соответствии с заданной математической функцией плотности вероятности
(именованное требование)

Конкуренция

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

Другое

описывает свойство типа
(именованное требование)
описывает отношения между двумя типами
(именованное требование)
изменяет свойство типа
(именованное требование)
(C++11)
объединяет продолжительность, момент времени и функцию для получения текущего момента времени
(именованное требование)
Clock, который не генерирует исключения
(именованное требование)
определяет типы и функции для символьного типа
(именованное требование)
битовый набор, целое число или перечисление
(именованное требование)
тип, для которого инициализация фактически равна присвоению
(именованное требование)
определяет типы и функции, используемые библиотекой регулярных выражений
(именованное требование)
(C++11)(устарело в C++20)
тип с constexpr конструктором
(именованное требование)
(C++20)
определяет функции, используемые библиотекой форматирования
(именованное требование)