operator<<,>>(std::linear_congruential_engine)
From 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以降) |
1) e の現在の状態のテキスト表現を、fmtflags を std::ios_base::dec | std::ios_base::left に設定し、埋め文字をスペース文字に設定した状態で、os に書き込みます。
書き込み後、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 が与えられたとします。 pr << eng によって以前に書き込まれた text があり、 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 | 挿入および抽出演算子の形式は未指定でした | 隠しフレンドとして指定されました |