名前空間
変種
操作

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

From cppreference.com
 
 
 
 
 
template< class CharT, class Traits >

friend std::basic_ostream<CharT, Traits>&
    operator<<( std::basic_ostream<CharT, Traits>& os,

                const mersenne_twister_engine& e );
(1) (C++11以降)
template< class CharT, class Traits >

friend std::basic_istream<CharT, Traits>&
    operator>>( std::basic_istream<CharT, Traits>& is,

                mersenne_twister_engine& e );
(2) (C++11以降)
1) e の現在の状態のテキスト表現を、fmtflags を std::ios_base::dec | std::ios_base::left に設定し、埋め文字をスペース文字に設定した状態で、os に書き込みます。
書き込み後、os の元の fmtflags と埋め文字は復元されます。
2) is から(text と表される)エンジン状態のテキスト表現を、fmtflags を std::ios_base::dec に設定して読み込み、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
  • それ以外の場合、もし textdecltype(e) のどの状態の有効なテキスト表現でもない場合、e の状態は変更されず、is.setstate(std::ios_base::failbit) が呼び出されます。
  • それ以外の場合、e と同じ型の別のエンジン eng が与えられたとします。text が以前に pr << eng によって書き込まれており、pr << engis >> e の間に e または eng の呼び出しが介在しない場合、e == engtrue になります。

これらの関数テンプレートは、通常の 修飾なし または 修飾あり の検索では見えず、decltype(e) が引数に関連付けられたクラスである場合にのみ、引数依存の名前探索 によって検出されます。

目次

[編集] パラメータ

os - データを挿入する出力ストリーム
is - データを抽出する入力ストリーム
e - 疑似乱数エンジン

[編集] 戻り値

1) `os`
2) `is`

[編集] 計算量

1,2) O(n)

[編集] 例外

2) std::ios_base::failbit を設定する際に、std::ios_base::failure を送出する可能性があります。

欠陥レポート

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 3519 C++11 挿入および抽出演算子の形式は未指定でした 隠しフレンドとして指定されました
English 日本語 中文(简体) 中文(繁體)