Namespaces
Variants

operator<<,>> (std::linear_congruential_engine)

From cppreference.net

template < class CharT, class Traits >

friend std:: basic_ostream < CharT, Traits > &
operator << ( std:: basic_ostream < CharT, Traits > & os,

const linear_congruential_engine & e ) ;
(1) (начиная с C++11)
template < class CharT, class Traits >

friend std:: basic_istream < CharT, Traits > &
operator >> ( std:: basic_istream < CharT, Traits > & is,

linear_congruential_engine & e ) ;
(2) (начиная с C++11)
1) Записывает текстовое представление текущего состояния e в os с установленными флагами форматирования std:: ios_base :: dec | std:: ios_base :: left и символом заполнения, установленным в пробел.
После записи, os исходные fmtflags и символ заполнения восстанавливаются.
2) Считывает текстовое представление состояния движка из is (обозначаемого как text ) с установленными флагами форматирования std:: ios_base :: dec и устанавливает состояние e в это состояние.
После чтения, is исходные fmtflags восстанавливаются.
  • Если text ранее не был записан с использованием выходного потока pr , поведение не определено.
  • Иначе, если любое из следующих значений равно false , поведение не определено:
  • is. getloc ( ) == pr. getloc ( )
  • std:: is_same < decltype ( is ) :: char_type ,
    decltype ( pr ) :: char_type > :: value
  • std:: is_same < decltype ( is ) :: traits_type ,
    decltype ( pr ) :: traits_type > :: value
  • Иначе, если text не является корректным текстовым представлением любого состояния decltype ( e ) , состояние e не изменяется и вызывается is. setstate ( std:: ios_base :: failbit ) .
  • Иначе, для другого движка eng того же типа, что и e . Если text ранее был записан с помощью pr << eng и между pr << eng и is >> e не было промежуточных вызовов e или eng , то e == eng равно true .

Эти шаблоны функций не видны при обычном unqualified или qualified lookup и могут быть найдены только с помощью argument-dependent lookup , когда decltype ( e ) является ассоциированным классом аргументов.

Содержание

Параметры

os - выходной поток для вставки данных
is - входной поток для извлечения данных
e - генератор псевдослучайных чисел

Возвращаемое значение

1) os
2) is

Сложность

1,2) Константа.

Исключения

2) Может выбрасывать std::ios_base::failure при установке std:: ios_base :: failbit .

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3519 C++11 the form of insertion and extraction operators were unspecified specified to be hidden friends