簡體   English   中英

TensorFlow C ++“ NOLINT(build / namespaces)”是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM