Namespaces
Variants

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

From cppreference.net

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 ,其中格式标志设置为 std:: ios_base :: dec | std:: ios_base :: left ,填充字符设置为空格字符。
写入完成后, os 原有的格式标志位和填充字符将被恢复。
2) is 读取引擎状态的文本表示(记为 text ),其格式化标志设置为 std:: ios_base :: dec ,并将 e 的状态设置为该状态。
读取后, is 的原始 fmtflags 会被恢复。
  • 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 )
  • 否则,给定与 e 同类型的另一引擎 eng 。若 text 先前由 pr << eng 写入,且在 pr << eng is >> e 之间没有对 e eng 的中间调用,则 e == eng true

这些函数模板对普通的 非限定查找 限定查找 不可见,仅当 decltype ( e ) 是参数的关联类时,才能通过 实参依赖查找 发现。

目录

参数

os - 用于插入数据的输出流
is - 用于提取数据的输入流
e - 伪随机数引擎

返回值

1) os
2) is

复杂度

1,2) O(n) .

异常

缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的C++标准。

缺陷报告 应用于 发布时的行为 正确行为
LWG 3519 C++11 插入和提取运算符的形式未作规定 规定为隐藏友元