AUTOSAR C++14 Rule A26-5-2
Random number engines shall not be default-initialized
説明
ルール定義
Random number engines shall not be default-initialized.
根拠
疑似乱数発生器は、最初のシード値に依存して乱数シーケンスを生成します。既定では、乱数エンジンの初期化は、既定のシード値である定数を使用して行われます。既定の初期化が設定された乱数発生器を複数回呼び出すと、常に同じ乱数シーケンスが生成されます。異なるプログラム実行での同一乱数シーケンスの生成など、予期せぬプログラムの動作を回避するには、乱数発生器を初期化するたびに、既定ではない固有のシード値を使用します。
テストでの一貫性を確保するために、確定的なシーケンスが必要な場合は、このルールの例外が許可されます。
Polyspace 実装
チェッカーは、以下に該当する行で違反を報告します。
C++ 規格の乱数発生器の既定の初期化が行われる行。
乱数発生器のシード関数が、既定の引数または明示的な引数
default_seedの暗黙的な呼び出しを使用して呼び出される行。
メモ
チェッカーは、一定の入力引数を使用する乱数エンジンの初期化を報告しません。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: アルゴリズム ライブラリ |
| カテゴリ: Required、Automated |
バージョン履歴
R2020b で導入