operator<<,>>(std::philox_engine)
来自cppreference.com
< cpp | numeric | random | philox engine
template< class CharT, class Traits > friend std::basic_ostream<CharT, Traits>& |
(1) | (C++26 起) |
template< class CharT, class Traits > friend std::basic_istream<CharT, Traits>& |
(2) | (C++26 起) |
在写入完成后,恢复 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)。
- 否则,给定与 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)。