2016-04-11 7 views
-4

まあ sum = sum + generator; ような何かをしてsumがdefault_random_engineタイプを事前に定義されたタイプdefault_random_engineにタイプがありますか?

+3

詳細を教えてください。あなたが何を求めているかは非常に不明です。 [reference documentation](http://en.cppreference.com/w/cpp/numeric/random)では、 'default_random_engine'は実装定義されています。 –

+0

すべてのエンジンは、結果の型である入れ子型 'result_type'を持っています。それはあなたが探しているものですか? – Praetorian

答えて

1

を持っていたと仮定することが可能であるならば、私は彼が生成した値は?タイプをC++でdefault_random_engineを持っていないしていると仮定?

はい。他のエンジンのtypedefです。

§26.5.5

備考:この型定義で指定されたエンジンの種類の選択は実装定義です。 [注: の実装では、パフォーマンス、サイズ、品質、またはそのような要素の組み合わせに基づいて、比較的カジュアルな、不得手な、および/または 軽量使用のために少なくとも許容できるエンジン動作を提供するように、このタイプを選択することができます。異なる実装で異なる基礎となるエンジンタイプを選択できるため、このtypedefを使用するコード は実装間で同一のシーケンスを生成する必要はありません。 - 最後のメモ]

すべてのランダムエンジンは、Engine::result_type Engine::operator()の戻り値のタイプEngine::result_typeをエクスポートします。

result_typeは、最初のテンプレート引数であるUIntTypeのtypedefです。

例えば:operator()の戻り型がstd::uint_fast32_tである

std::mersenne_twister_engine<std::uint_fast32_t, 
         32, 624, 397, 31, 
         0x9908b0df, 11, 
         0xffffffff, 7, 
         0x9d2c5680, 15, 
         0xefc60000, 18, 1812433253> 

+2

私はこの回答の事実に同意するが、OPはここで答えたものとは異なる質問をしたように思えるだろう。具体的には、「C++では*生成する*型は型を持っていますか?」というのは、ジェネレータ自体の型ではなく、生成されるデータの型の混乱を示唆しています。率直に言って、私はOPが尋ねられたことを知っていると確信していません。 – WhozCraig

+0

@WhozCraigああ、今、私はあなたが言っていることを見ている質問を再読した。 –

+0

正確です。確かに確かな答えですが、OPの質問に答えるかどうかは分かりません。 – WhozCraig

関連する問題