Spec-Zone.ru › C++

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

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 с установленным значением fmtflags std::ios_base::dec | std::ios_base::left и символом заполнения, равным пробелу.
После записи исходные значения fmtflags и символ заполнения os восстанавливаются.
2) Считывает текстовое представление состояния генератора из is (обозначается как text) с установленным значением fmtflags std::ios_base::dec и задаёт это состояние для e.
После чтения исходное значение fmtflags is восстанавливается.
  • Если 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.

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

Параметры

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

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

1) os
2) is

Сложность

1,2) Постоянная.

Исключения

2) При установке std::ios_base::failbit может быть выброшено исключение std::ios_base::failure.

Отчёты об ошибках

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

DR Применяется к Опубликованное поведение Правильное поведение
LWG 3519 C++11 форма операторов вставки и извлечения не была определена уточнено, что это скрытые дружественные функции

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/random/linear_congruential_engine/operator_ltltgtgt

Spec-Zone.ru

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