メインコンテンツ

MISRA C++:2008 Rule 2-13-1

Only those escape sequences that are defined in ISO/IEC 14882:2003 shall be used.

説明

ルール定義

Only those escape sequences that are defined in ISO/IEC 14882:2003 shall be used. 1

根拠

エスケープ シーケンスとは、文字列と文字リテラルで表される一部の特殊文字です。これらはバックスラッシュ (\) の後ろに文字を続けることで記述します。

C++ 規格 (ISO/IEC 14882:2003、節 2.13.2) ではエスケープ シーケンスのリストを定義しています。エスケープ シーケンスを参照してください。このリストにないエスケープ シーケンス (バックスラッシュの後ろに文字) を使用すると未定義の動作につながります。

Polyspace 実装

ルール チェッカーは、ISO/IEC 14882:2003 規格で定義されているエスケープ シーケンス以外のエスケープ シーケンスの使用に対して違反を報告します。

トラブルシューティング

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

すべて展開する

void func () {
  const char a[2] = "\k"; //Noncompliant
  const char b[2] = "\b"; //Compliant
}

この例では、\k は認識されたエスケープ シーケンスではありません。

チェック情報

グループ: Lexical Conventions
カテゴリ: 必要

バージョン履歴

R2013b で導入


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.