operator<<,>>(std::linear_congruential_engine)
来自cppreference.com
| |
(1) | (C++11 起) |
| |
(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>::valuestd::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)
os2)
is复杂度
1,2) Constant。
异常
2) 设置
std::ios_base::failbit 时可能会抛出 std::ios_base::failure。缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
| 缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
|---|---|---|---|
| LWG 3519 | C++11 | 插入与提取运算符的形式未指定 | 指定为隐藏友元 |