メインコンテンツ

AUTOSAR C++14 Rule A0-4-2

long double 型を使用してはなりません。

説明

ルール定義

long double 型を使用してはなりません。

根拠

long double のサイズは実装によって異なるため、コンパイラ間のコードの移植性が低下します。コンパイラによって、long doubledouble の同義語として実装している場合や、double より正確な 80 ビットの拡張精度型または 128 ビットの 4 倍精度型として実装している場合があります。

double よりも正確な型を必要とする多倍精度演算の場合は、適切に定義されたデータ型による多倍精度演算をサポートするライブラリを使用します。

Polyspace 実装

ルール チェッカーでは、long double キーワードのすべての使用にフラグを設定します。

問題を修正しない場合は、結果を正当化するコメントを追加します。詳細は、以下を参照してください。

トラブルシューティング

ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

すべて展開する

void func() {
  float f{0.1F};  //Compliant
  double D(0.1);  //Compliant
  long double LD(0.1L);  //Noncompliant
}

long double の使用はこのルールに違反します。

チェック情報

グループ: 言語に依存しない問題
カテゴリ: Required、Automated

バージョン履歴

R2019a で導入