Именованные требования C++: RandomNumberEngineAdaptor (начиная с C++11)
RandomNumberEngineAdaptor — это RandomNumberEngine, преобразующий результат работы другого RandomNumberEngine, который называется базовым генератором.
Требования
Пусть заданы
-
B— RandomNumberEngine -
b— объект типаB -
A— RandomNumberEngineAdaptor, использующийBв качестве базового генератора -
a— объект типаA
| функция | семантика |
|---|---|
A::A(); | Базовый генератор инициализируется так, как если бы был вызван его конструктор по умолчанию. |
bool operator==(const A& lhs, const A& rhs); | Возвращает, равен ли базовый генератор lhs базовому генератору rhs. |
A::A(result_type s); | Базовый генератор инициализируется значением s. |
template<class Sseq> A::A(Sseq& q); | Базовый генератор инициализируется значением q. |
void seed(); | Вызывает b.seed(). |
void seed(result_type s); | Вызывает b.seed(s). |
template<class Sseq> void seed(Sseq& q); | Вызывает b.seed(q). |
Кроме того
- Сложность каждой функции
Aне превышает сложность функцииB - Состояние
Aвключает состояниеB - Размер состояния
Aне меньше размераb - Копирование состояния
Aвключает копирование состоянияB - Текстовое представление
Aвключает текстовое представлениеB
Стандартная библиотека
Следующие средства стандартной библиотеки соответствуют требованиям RandomNumberEngineAdaptor:
|
(C++11) | отбрасывает часть результатов работы генератора случайных чисел (шаблон класса) |
|
(C++11) | упаковывает результаты работы генератора случайных чисел в блоки заданного количества битов (шаблон класса) |
|
(C++11) | выдаёт результаты работы генератора случайных чисел в другом порядке (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/RandomNumberEngineAdaptor