operator<<,>>(std::linear_congruential_engine)
来自 cppreference.com
< cpp | numeric | random | linear congruential engine
template< class CharT, class Traits > friend std::basic_ostream<CharT, Traits>& |
(1) | (自 C++11 起) |
template< class CharT, class Traits > friend std::basic_istream<CharT, Traits>& |
(2) | (自 C++11 起) |
写入后,os 的原始 fmtflags 和填充字符将被恢复。
读取后,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)。
- 否则,假设另一个引擎 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) 常数。
[编辑] 异常
缺陷报告
以下行为更改缺陷报告被追溯应用于先前发布的 C++ 标准。
DR | 应用于 | 已发布的行为 | 正确行为 |
---|---|---|---|
LWG 3519 | C++11 | 插入和提取运算符的形式未指定 | 指定为隐藏的友元函数 |