Namespaces
Variants

C++ named requirements: RandomNumberEngineAdaptor (since C++11)

From cppreference.net
C++ named requirements

Un RandomNumberEngineAdaptor es un RandomNumberEngine que transforma la salida de otro RandomNumberEngine , al cual se denomina motor base .

Requisitos

Dado

  • B , un RandomNumberEngine
  • b , un objeto de tipo B
  • A , un RandomNumberEngineAdaptor , que adapta B como motor base
  • a , un objeto de tipo A
función semántica
A :: A ( ) ; El motor base se inicializa como si fuera por su constructor predeterminado.
bool operator == ( const A & lhs, const A & rhs ) ; Devuelve si el motor base de lhs es igual al motor base de rhs o no.
A :: A ( result_type s ) ; El motor base se inicializa con s .
template < class Sseq > A :: A ( Sseq & q ) ; El motor base se inicializa con q .
void seed ( ) ; Invoca b. seed ( ) .
void seed ( result_type s ) ; Invoca b. seed ( s ) .
template < class Sseq > void seed ( Sseq & q ) ; Invoca b. seed ( q ) .

Además

  • La complejidad de cada función de A no excede la complejidad de la función de B
  • El estado de A incluye el estado de B
  • El tamaño del estado de A no es menor que el tamaño de b
  • Copiar el estado de A incluye copiar el estado de B
  • La representación textual de A incluye la representación textual de B

Biblioteca estándar

Las siguientes facilidades de la biblioteca estándar satisfacen RandomNumberEngineAdaptor :

descarta algunas salidas de un motor de números aleatorios
(plantilla de clase)
empaqueta la salida de un motor de números aleatorios en bloques de un número específico de bits
(plantilla de clase)
entrega la salida de un motor de números aleatorios en un orden diferente
(plantilla de clase)