2016-07-29 15 views
0

に「TM」を使用してSonarQubeブロッカー:私のヘッダファイルに次の関数宣言のいずれかを使用して関数宣言

time_t MyFunction (tm* time);

time_t MyFunction (struct tm* time);

私は、次のソナーブロッカーの問題を取得しています

予約名 "tm"を予約されていないものに変更します。

私は<time.h>をヘッダーに含めようとしましたが、これはやっていません。奇妙なことに、対応する関数定義自体にはそのような問題はありません。ソナーはこれについて不平を言っていません。

なぜか、私はそれを回避する方法についての任意の考えですか?

+0

最後の手段として無視ルールを追加することができます。 –

+0

@adnankamili私はよく頼るかもしれません。 C++ Sonarの特定の行を無視する方法はありますか? – splrs

答えて

0

CまたはC++コードをコンパイルしている場合は書かれていません。後者の場合は、ctime.hヘッダーを使用してstd::tmを使用することをお勧めします。たぶんそれは分析のためのトリックを行うだろう。それでもソナー-無視してラインをに頼る必要がある場合 、あなたは私の知る限り、これは追加の設定なしで動作

time_t MyFunction (tm* time); // NOSONAR 

を使用することができます。

//sonarqube ingore on 
time_t MyFunction (tm* time); 
//sonarqube ingore off 

コードブロックを無視しています。しかし、これはフラグを知らせるためにソナーケの設定を必要とするかもしれません。私たちは、のpom.xmlに以下のように使用している、そしてそれはあなたの環境では異なるが、同様のことがあります:

<sonar.issue.ignore.block>e1</sonar.issue.ignore.block> 
<sonar.issue.ignore.block.e1.beginBlockRegexp>sonarqube ignore on</sonar.issue.ignore.block.e1.beginBlockRegexp> 
<sonar.issue.ignore.block.e1.endBlockRegexp>sonarqube ignore off</sonar.issue.ignore.block.e1.endBlockRegexp> 

残念ながら、SQのドキュメントは、プロジェクトの設定でルールとその例外を処理するのではなくする方法の詳細焦点を当てコードでは、この情報はそれほど簡単ではありません。

私の経験上、SQは宣言であなたのようなコードの匂いについて苦情を言います。あなたのc/cppファイルの警告。