[英]TensorFlow C++ what does “NOLINT(build/namespaces)” mean?
奇怪的問題是,在Github上TensorFlow的C ++代碼部分的不同地方,有以下注釋:
// NOLINT(build/namespaces)
例如,C ++標簽圖像示例具有以下注釋:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/label_image/main.cc#L120
Status ReadTensorFromImageFile(const string& file_name, const int input_height,
const int input_width, const float input_mean,
const float input_std,
std::vector<Tensor>* out_tensors) {
auto root = tensorflow::Scope::NewRootScope();
using namespace ::tensorflow::ops; // NOLINT(build/namespaces)
string input_name = "file_reader";
string output_name = "normalized";
.
.
.
誰能解釋// NOLINT(build/namespaces)
意味着什么? 我會嘗試自己進行更多研究,但我什至不知道從哪里開始。
Linter是用於以靜態方式檢查代碼的樣式和正確性的工具。 TensorFlow開發人員使用的其他工具之一是clang-tidy 。
盡管這些工具對於發現錯誤非常有用,但有時不應用常規檢查(例如,在生成的代碼,高度優化的代碼中,或者在故意使用過時的API以便向后兼容的情況下),在這種情況下,可以使用//NOLINT
這樣的注釋告訴短絨貓不要報告錯誤,保持假陽性率低,結果有意義。
這些位置中的每個位置都應說明原因,以便開發人員知道哪些內容被忽略以及為什么要定期對其進行審查,從而可以檢測到由於更新引起的更改。
另請參閱抑制部分: http : //clang.llvm.org/extra/clang-tidy/#suppressing-undesired-diagnostics
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.