2017-02-05 12 views
0

クラスdefault_random_engineは、乱数を生成するために非常に便利ですが、いくつかのプログラマは、このクラスで定義されたオブジェクトのコンストラクタのためtemplate function static_castを使用します。デフォルトのランダムエンジンと静的キャスト

default_random_engine myEngine(static_cast<unsigned int>time(0)); 

しかし、私はその理由を理解することはできません上記のこの使用フォーマットの

default_random_engine myEngine(time(0)); 

答えて

2

time_tの定義(timeのリターン)C++標準で指定され、したがって、実装に依存しません。私は今まで下にこの使用形式を使用している
time_tの実際のタイプがdefault_random_engineコンストラクタによって予期されるタイプとひどく互換性がない場合は、コンパイル警告が発生する可能性があります。キャストはおそらくそこを過ぎるでしょう。

+0

**算術型**である必要があるため、実際の非互換性はありません。そのキャストの**唯一の**理由は、警告を静かにすることです。 –

+0

@PeteBecker回答が反映されました。 –

関連する問題