2016-07-28 10 views
2

理解,這不是一噸的情況下,我有這樣一行:cppcheck報告「冗餘代碼:研究發現,用數字常量開頭的語句」爲一個「使用」聲明

using GridType = Grid<boost::optional<float>, 2>; 

爲此cppcheck說:

Redundant code: Found a statement that begins with numeric constant. 

我認爲「假陽性」,但通常這些分析工具是比我聰明,所以我想檢查是否有人能想到的,爲什麼這樣的說法可以解釋這樣的分析儀?

我在Ubuntu系統上使用cppcheck 1.61。

+0

你應該提及你的cppcheck版本(也許是你運行它的平臺)。 –

+1

@JesperJuhl新增問題的版本。 –

回答

1

cppcheck很大程度上基於模式匹配,並且在某些時候不太聰明/很淺。它確實找到一堆不錯的東西,但也有很多的誤報。我會說這是一個誤解,因爲簡單的頭腦混淆了。

另外;版本1.61有點舊了。你有沒有測試過最新的1.74,看看它是否更聰明? (如果它不在你的發行版倉庫中,從源代碼構建起來非常簡單)

+0

1.74和1.73在Red Hat 4.8.3-9(這是一個AWS實例)上花費了超長時間(幾個小時,幾乎像是掛起)。 1.61只需要幾分鐘。我將繼續沿着版本列表向後看,看看它什麼時候效果更好。任何想法爲什麼這可能是? –

+0

不知道。 1.74在我工作的代碼庫(~70,000行C++)上運行幾十分鐘。 –

+0

它可以在1.70下正常工作,速度非常慢,但是速度比1.71更慢,但速度慢了1.72。我想我會堅持1.70 ...? :) –