operator<<,>>(std::subtract_with_carry_engine)
template< class CharT, class Traits >
friend std::basic_ostream<CharT, Traits>&
operator<<( std::basic_ostream<CharT, Traits>& os,
const subtract_with_carry_engine& e );
| (1) | (начиная с C++11) |
template< class CharT, class Traits >
friend std::basic_istream<CharT, Traits>&
operator>>( std::basic_istream<CharT, Traits>& is,
subtract_with_carry_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) \(\scriptsize O(r) \)O(r).
Исключения
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроспективно к ранее опубликованным стандартам 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/subtract_with_carry_engine/operator_ltltgtgt