命名空间
变体
操作

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

来自 cppreference.com
 
 
 
 
 
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) 使用 fmtflags 设置为 std::ios_base::dec | std::ios_base::left 且填充字符设置为空格字符,将 e 的当前状态的文本表示写入 os
写入后,os 的原始 fmtflags 和填充字符将被恢复。
2) 使用 fmtflags 设置为 std::ios_base::dec,从 is 中读取引擎状态的文本表示(表示为 text),并将 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)
  • 否则,假设另一个引擎 enge 类型相同。如果 text 之前由 pr << eng 写入,并且在 pr << engis >> e 之间没有对 eeng 的中间调用,则 e == engtrue

这些函数模板对普通的 非限定限定查找 不可見,只有在 decltype(e) 是参数的关联类时,才能通过 参数依赖查找 找到它们。

内容

[编辑] 参数

os - 要插入数据的输出流
is - 要从中提取数据的输入流
e - 伪随机数引擎

[编辑] 返回值

1) os
2) is

[编辑] 复杂度

1,2) 常数。

[编辑] 异常

2) 设置 std::ios_base::failbit 时可能抛出 std::ios_base::failure

缺陷报告

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

DR 应用于 已发布的行为 正确行为
LWG 3519 C++11 插入和提取运算符的形式未指定 指定为隐藏的友元函数