Spec-Zone.ru › C++

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) Считывает текстовое представление состояния движка из 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) \(\scriptsize O(r) \)O(r).

Исключения

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/subtract_with_carry_engine/operator_ltltgtgt

Spec-Zone.ru

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