Spec-Zone.ru › C++

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

template< class CharT, class Traits >
friend std::basic_ostream<CharT, Traits>& 
    operator<<( std::basic_ostream<CharT, Traits>& os, 
                const mersenne_twister_engine& e );
(1) (начиная с C++11)
template< class CharT, class Traits >
friend std::basic_istream<CharT, Traits>& 
    operator>>( std::basic_istream<CharT, Traits>& is, 
                mersenne_twister_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(n) \)O(n).

Исключения

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

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

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

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

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

Spec-Zone.ru

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