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) Считывает текстовое представление состояния генератора из
После чтения исходное значение fmtflags is (обозначается как text) с установленным значением fmtflags std::ios_base::dec и задаёт это состояние для e.is восстанавливается. - Если
textранее не записывался с использованием выходного потокаpr, поведение не определено. - В противном случае, если любое из следующих значений равно
false, поведение не определено: is.getloc() == pr.getloc()std::is_same<decltype(is)::char_type,decltype(pr)::char_type>::valuestd::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) Постоянная.
Исключения
Отчёты об ошибках
Следующие отчёты об ошибках, меняющих поведение, были применены задним числом к ранее опубликованным стандартам 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