./src\application\application.cpp:19:  Found C++ system header after other header. Should be: application.h, c system, c++ system, other.  [build/include_order] [4]
./src\application\application.cpp:21:  Found C++ system header after other header. Should be: application.h, c system, c++ system, other.  [build/include_order] [4]
./src\application\application.cpp:21:   is an unapproved C++11 header.  [build/c++11] [5]
./src\application\application.cpp:22:  Found C++ system header after other header. Should be: application.h, c system, c++ system, other.  [build/include_order] [4]
./src\application\application.cpp:23:  Found C++ system header after other header. Should be: application.h, c system, c++ system, other.  [build/include_order] [4]
./src\application\application.cpp:24:  Found C++ system header after other header. Should be: application.h, c system, c++ system, other.  [build/include_order] [4]
./src\application\application.cpp:25:  Found C++ system header after other header. Should be: application.h, c system, c++ system, other.  [build/include_order] [4]
./src\application\application.cpp:26:  Found C++ system header after other header. Should be: application.h, c system, c++ system, other.  [build/include_order] [4]
Done processing ./src\application\application.cpp
./src\boosting\boosting.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\boosting.cpp:2:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\boosting.cpp
./src\network\network.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\network\network.cpp:5:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\network\network.cpp:7:  Found C++ system header after other header. Should be: network.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\network.cpp:8:  Found C++ system header after other header. Should be: network.h, c system, c++ system, other.  [build/include_order] [4]
Done processing ./src\network\network.cpp
./include\LightGBM\metric.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\metric.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_METRIC_H_  [build/header_guard] [5]
./include\LightGBM\metric.h:139:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_METRIC_H_"  [build/header_guard] [5]
./include\LightGBM\metric.h:53:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\metric.h
./include\LightGBM\lightgbm_R.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\lightgbm_R.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_LIGHTGBM_R_H_  [build/header_guard] [5]
./include\LightGBM\lightgbm_R.h:525:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_LIGHTGBM_R_H_"  [build/header_guard] [5]
./include\LightGBM\lightgbm_R.h:7:  Found C system header after C++ system header. Should be: lightgbm_R.h, c system, c++ system, other.  [build/include_order] [4]
Done processing ./include\LightGBM\lightgbm_R.h
./include\LightGBM\utils\common.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\common.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_COMMON_H_  [build/header_guard] [5]
./include\LightGBM\utils\common.h:881:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_COMMON_H_"  [build/header_guard] [5]
./include\LightGBM\utils\common.h:21:  Include the directory when naming .h files  [build/include_subdir] [4]
./include\LightGBM\utils\common.h:297:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
./include\LightGBM\utils\common.h:343:  Using deprecated casting style.  Use static_cast(...) instead  [readability/casting] [4]
./include\LightGBM\utils\common.h:345:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./include\LightGBM\utils\common.h:345:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./include\LightGBM\utils\common.h:369:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
./include\LightGBM\utils\common.h:409:  Closing ) should be moved to the previous line  [whitespace/parens] [2]
./include\LightGBM\utils\common.h:413:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
./include\LightGBM\utils\common.h:622:  Is this a non-const reference? If so, make const or use a pointer: std::vector& keys  [runtime/references] [2]
./include\LightGBM\utils\common.h:622:  Is this a non-const reference? If so, make const or use a pointer: std::vector& values  [runtime/references] [2]
./include\LightGBM\utils\common.h:643:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::vector>& data  [runtime/references] [2]
./include\LightGBM\utils\common.h:557:  Add #include  for numeric_limits<>  [build/include_what_you_use] [4]
./include\LightGBM\utils\common.h:632:  Add #include  for pair<>  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\utils\common.h
./src\boosting\goss.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\goss.hpp:1:  #ifndef header guard has wrong style, please use: SRC_BOOSTING_GOSS_HPP_  [build/header_guard] [5]
./src\boosting\goss.hpp:216:  #endif line should be "#endif  // SRC_BOOSTING_GOSS_HPP_"  [build/header_guard] [5]
./src\boosting\goss.hpp:10:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\boosting\goss.hpp:12:  Found C++ system header after other header. Should be: goss.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\goss.hpp:13:  Found C++ system header after other header. Should be: goss.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\goss.hpp:14:  Found C++ system header after other header. Should be: goss.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\goss.hpp:15:  Found C++ system header after other header. Should be: goss.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\goss.hpp:16:  Found C++ system header after other header. Should be: goss.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\goss.hpp:16:   is an unapproved C++11 header.  [build/c++11] [5]
./src\boosting\goss.hpp:17:  Found C++ system header after other header. Should be: goss.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\goss.hpp:87:  Is this a non-const reference? If so, make const or use a pointer: Random& cur_rand  [runtime/references] [2]
Done processing ./src\boosting\goss.hpp
./src\io\sparse_bin.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\sparse_bin.hpp:1:  #ifndef header guard has wrong style, please use: SRC_IO_SPARSE_BIN_HPP_  [build/header_guard] [5]
./src\io\sparse_bin.hpp:468:  #endif line should be "#endif  // SRC_IO_SPARSE_BIN_HPP_"  [build/header_guard] [5]
./src\io\sparse_bin.hpp:74:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./src\io\sparse_bin.hpp:144:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\sparse_bin.hpp:207:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\sparse_bin.hpp:416:  Missing space before {  [whitespace/braces] [5]
./src\io\sparse_bin.hpp:428:  Missing space before {  [whitespace/braces] [5]
./src\io\sparse_bin.hpp:254:  Add #include  for sort  [build/include_what_you_use] [4]
./src\io\sparse_bin.hpp:423:  Add #include  for pair<>  [build/include_what_you_use] [4]
Done processing ./src\io\sparse_bin.hpp
./src\objective\rank_objective.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\objective\rank_objective.hpp:1:  #ifndef header guard has wrong style, please use: SRC_OBJECTIVE_RANK_OBJECTIVE_HPP_  [build/header_guard] [5]
./src\objective\rank_objective.hpp:240:  #endif line should be "#endif  // SRC_OBJECTIVE_RANK_OBJECTIVE_HPP_"  [build/header_guard] [5]
./src\objective\rank_objective.hpp:200:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./src\objective\rank_objective.hpp
./src\main.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\main.cpp:2:  Found C system header after C++ system header. Should be: main.h, c system, c++ system, other.  [build/include_order] [4]
Done processing ./src\main.cpp
./src\treelearner\feature_histogram.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\feature_histogram.hpp:1:  #ifndef header guard has wrong style, please use: SRC_TREELEARNER_FEATURE_HISTOGRAM_HPP_  [build/header_guard] [5]
./src\treelearner\feature_histogram.hpp:821:  #endif line should be "#endif  // SRC_TREELEARNER_FEATURE_HISTOGRAM_HPP_"  [build/header_guard] [5]
./src\treelearner\feature_histogram.hpp:6:  Found C system header after other header. Should be: feature_histogram.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\feature_histogram.hpp:7:  Found C system header after other header. Should be: feature_histogram.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\feature_histogram.hpp:9:  Found C++ system header after other header. Should be: feature_histogram.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\feature_histogram.hpp:10:  Found C++ system header after other header. Should be: feature_histogram.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\feature_histogram.hpp:668:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\treelearner\feature_histogram.hpp:439:  Add #include  for max  [build/include_what_you_use] [4]
./src\treelearner\feature_histogram.hpp:790:  Add #include  for swap  [build/include_what_you_use] [4]
./src\treelearner\feature_histogram.hpp:808:  Add #include  for unique_ptr<>  [build/include_what_you_use] [4]
./src\treelearner\feature_histogram.hpp:816:  Add #include  for vector<>  [build/include_what_you_use] [4]
Done processing ./src\treelearner\feature_histogram.hpp
./src\metric\multiclass_metric.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\metric\multiclass_metric.hpp:1:  #ifndef header guard has wrong style, please use: SRC_METRIC_MULTICLASS_METRIC_HPP_  [build/header_guard] [5]
./src\metric\multiclass_metric.hpp:169:  #endif line should be "#endif  // SRC_METRIC_MULTICLASS_METRIC_HPP_"  [build/header_guard] [5]
./src\metric\multiclass_metric.hpp:134:  Is this a non-const reference? If so, make const or use a pointer: std::vector& score  [runtime/references] [2]
./src\metric\multiclass_metric.hpp:154:  Is this a non-const reference? If so, make const or use a pointer: std::vector& score  [runtime/references] [2]
./src\metric\multiclass_metric.hpp:125:  Add #include  for string  [build/include_what_you_use] [4]
./src\metric\multiclass_metric.hpp:154:  Add #include  for vector<>  [build/include_what_you_use] [4]
Done processing ./src\metric\multiclass_metric.hpp
./include\LightGBM\utils\pipeline_reader.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\pipeline_reader.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_PIPELINE_READER_H_  [build/header_guard] [5]
./include\LightGBM\utils\pipeline_reader.h:67:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_PIPELINE_READER_H_"  [build/header_guard] [5]
./include\LightGBM\utils\pipeline_reader.h:9:   is an unapproved C++11 header.  [build/c++11] [5]
./include\LightGBM\utils\pipeline_reader.h:13:  Include the directory when naming .h files  [build/include_subdir] [4]
./include\LightGBM\utils\pipeline_reader.h:58:  Add #include  for swap  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\utils\pipeline_reader.h
./include\LightGBM\utils\random.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\random.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_RANDOM_H_  [build/header_guard] [5]
./include\LightGBM\utils\random.h:114:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_RANDOM_H_"  [build/header_guard] [5]
./include\LightGBM\utils\random.h:29:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
Done processing ./include\LightGBM\utils\random.h
./include\LightGBM\R_object_helper.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\R_object_helper.h:6:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_R_OBJECT_HELPER_H_  [build/header_guard] [5]
./include\LightGBM\R_object_helper.h:188:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_R_OBJECT_HELPER_H_"  [build/header_guard] [5]
./include\LightGBM\R_object_helper.h:121:  Using C-style cast.  Use reinterpret_cast<SEXPREC_ALIGN >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:123:  Using C-style cast.  Use reinterpret_cast<char >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:125:  Using C-style cast.  Use reinterpret_cast<int >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:127:  Using C-style cast.  Use reinterpret_cast<int64_t >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:129:  Using C-style cast.  Use reinterpret_cast<double >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:131:  Using C-style cast.  Use reinterpret_cast<int >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:133:  Using C-style cast.  Use reinterpret_cast<int64_t >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:140:  Using C-style cast.  Use reinterpret_cast<int64_t >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:154:  Using C-style cast.  Use reinterpret_cast<void >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:164:  Using C-style cast.  Use reinterpret_cast<int32_t >(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:178:  Using C-style cast.  Use reinterpret_cast<void >(...) instead  [readability/casting] [4]
Done processing ./include\LightGBM\R_object_helper.h
./src\treelearner\serial_tree_learner.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\serial_tree_learner.cpp:1:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\serial_tree_learner.cpp:272:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\treelearner\serial_tree_learner.cpp:801:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\treelearner\serial_tree_learner.cpp:841:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\treelearner\serial_tree_learner.cpp:553:  Add #include <unordered_map> for unordered_map<>  [build/include_what_you_use] [4]
./src\treelearner\serial_tree_learner.cpp:694:  Add #include  for make_pair  [build/include_what_you_use] [4]
Done processing ./src\treelearner\serial_tree_learner.cpp
./src\io\bin.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\bin.cpp:11:  Found C++ system header after other header. Should be: bin.h, c system, c++ system, other.  [build/include_order] [4]
./src\io\bin.cpp:12:  Found C++ system header after other header. Should be: bin.h, c system, c++ system, other.  [build/include_order] [4]
./src\io\bin.cpp:13:  Found C++ system header after other header. Should be: bin.h, c system, c++ system, other.  [build/include_order] [4]
./src\io\bin.cpp:15:  Found C++ system header after other header. Should be: bin.h, c system, c++ system, other.  [build/include_order] [4]
./src\io\bin.cpp:16:  Found C++ system header after other header. Should be: bin.h, c system, c++ system, other.  [build/include_order] [4]
./src\io\bin.cpp:17:  Found C++ system header after other header. Should be: bin.h, c system, c++ system, other.  [build/include_order] [4]
./src\io\bin.cpp:76:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\bin.cpp:196:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\bin.cpp:392:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\io\bin.cpp
./src\treelearner\data_partition.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\data_partition.hpp:1:  #ifndef header guard has wrong style, please use: SRC_TREELEARNER_DATA_PARTITION_HPP_  [build/header_guard] [5]
./src\treelearner\data_partition.hpp:225:  #endif line should be "#endif  // SRC_TREELEARNER_DATA_PARTITION_HPP_"  [build/header_guard] [5]
./src\treelearner\data_partition.hpp:83:  Add #include  for copy  [build/include_what_you_use] [4]
Done processing ./src\treelearner\data_partition.hpp
./include\LightGBM\objective_function.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\objective_function.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_OBJECTIVE_FUNCTION_H_  [build/header_guard] [5]
./include\LightGBM\objective_function.h:93:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_OBJECTIVE_FUNCTION_H_"  [build/header_guard] [5]
./include\LightGBM\objective_function.h:88:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\objective_function.h
./src\io\dense_bin.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\dense_bin.hpp:1:  #ifndef header guard has wrong style, please use: SRC_IO_DENSE_BIN_HPP_  [build/header_guard] [5]
./src\io\dense_bin.hpp:350:  #endif line should be "#endif  // SRC_IO_DENSE_BIN_HPP_"  [build/header_guard] [5]
./src\io\dense_bin.hpp:47:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./src\io\dense_bin.hpp:191:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\dense_bin.hpp:252:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\dense_bin.hpp:325:  Missing space before {  [whitespace/braces] [5]
Done processing ./src\io\dense_bin.hpp
./src\io\dataset_loader.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\dataset_loader.cpp:394:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\io\dataset_loader.cpp:394:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\io\dataset_loader.cpp:417:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\io\dataset_loader.cpp:417:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
Done processing ./src\io\dataset_loader.cpp
./include\LightGBM\json11.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\json11.hpp:80:  public: should be indented +1 space inside class Json  [whitespace/indent] [3]
./include\LightGBM\json11.hpp:92:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:93:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:94:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:95:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:96:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:97:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:98:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:99:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:100:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:101:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:102:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:106:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:113:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:119:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:123:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:156:  Is this a non-const reference? If so, make const or use a pointer: std::string &out  [runtime/references] [2]
./include\LightGBM\json11.hpp:165:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:168:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:180:  Is this a non-const reference? If so, make const or use a pointer: std::string::size_type & parser_stop_pos  [runtime/references] [2]
./include\LightGBM\json11.hpp:181:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:186:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:205:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:220:  Is this a non-const reference? If so, make const or use a pointer: std::string &out  [runtime/references] [2]
./include\LightGBM\json11.hpp:204:  Add #include  for pair<>  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\json11.hpp
./src\io\config_auto.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\config_auto.cpp:271:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\io\config_auto.cpp:277:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:284:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\io\config_auto.cpp:341:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:344:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:353:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:356:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:375:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:378:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:381:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:454:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:482:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:489:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:498:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:501:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:504:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:515:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./src\io\config_auto.cpp:619:  Namespace should be terminated with "// namespace LightGBM"  [readability/namespace] [5]
Done processing ./src\io\config_auto.cpp
./src\io\config.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\config.cpp:157:  Use int16/int64/etc, rather than the C type short  [runtime/int] [4]
Done processing ./src\io\config.cpp
./include\LightGBM\utils\text_reader.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\text_reader.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_TEXT_READER_H_  [build/header_guard] [5]
./include\LightGBM\utils\text_reader.h:326:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_TEXT_READER_H_"  [build/header_guard] [5]
./include\LightGBM\utils\text_reader.h:104:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./include\LightGBM\utils\text_reader.h:104:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./include\LightGBM\utils\text_reader.h:114:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./include\LightGBM\utils\text_reader.h:114:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./include\LightGBM\utils\text_reader.h:162:  Is this a non-const reference? If so, make const or use a pointer: Random& random  [runtime/references] [2]
./include\LightGBM\utils\text_reader.h:171:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./include\LightGBM\utils\text_reader.h:171:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./include\LightGBM\utils\text_reader.h:198:  Is this a non-const reference? If so, make const or use a pointer: Random& random  [runtime/references] [2]
./include\LightGBM\utils\text_reader.h:211:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./include\LightGBM\utils\text_reader.h:211:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./include\LightGBM\utils\text_reader.h:254:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./include\LightGBM\utils\text_reader.h:254:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./include\LightGBM\utils\text_reader.h:267:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./include\LightGBM\utils\text_reader.h:267:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./include\LightGBM\utils\text_reader.h:303:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./include\LightGBM\utils\text_reader.h:303:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
Done processing ./include\LightGBM\utils\text_reader.h
./include\LightGBM\application.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\application.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_APPLICATION_H_  [build/header_guard] [5]
./include\LightGBM\application.h:88:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_APPLICATION_H_"  [build/header_guard] [5]
Done processing ./include\LightGBM\application.h
./include\LightGBM\c_api.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\c_api.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_C_API_H_  [build/header_guard] [5]
./include\LightGBM\c_api.h:945:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_C_API_H_"  [build/header_guard] [5]
./include\LightGBM\c_api.h:15:  Found C system header after C++ system header. Should be: c_api.h, c system, c++ system, other.  [build/include_order] [4]
./include\LightGBM\c_api.h:942:  Almost always, snprintf is better than strcpy  [runtime/printf] [4]
Done processing ./include\LightGBM\c_api.h
./include\LightGBM\utils\threading.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\threading.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_THREADING_H_  [build/header_guard] [5]
./include\LightGBM\utils\threading.h:41:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_THREADING_H_"  [build/header_guard] [5]
Done processing ./include\LightGBM\utils\threading.h
./src\metric\regression_metric.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\metric\regression_metric.hpp:1:  #ifndef header guard has wrong style, please use: SRC_METRIC_REGRESSION_METRIC_HPP_  [build/header_guard] [5]
./src\metric\regression_metric.hpp:316:  #endif line should be "#endif  // SRC_METRIC_REGRESSION_METRIC_HPP_"  [build/header_guard] [5]
./src\metric\regression_metric.hpp:268:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\metric\regression_metric.hpp:290:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\metric\regression_metric.hpp:109:  Add #include  for string  [build/include_what_you_use] [4]
./src\metric\regression_metric.hpp:109:  Add #include  for vector<>  [build/include_what_you_use] [4]
./src\metric\regression_metric.hpp:243:  Add #include  for max  [build/include_what_you_use] [4]
Done processing ./src\metric\regression_metric.hpp
./src\objective\multiclass_objective.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\objective\multiclass_objective.hpp:1:  #ifndef header guard has wrong style, please use: SRC_OBJECTIVE_MULTICLASS_OBJECTIVE_HPP_  [build/header_guard] [5]
./src\objective\multiclass_objective.hpp:259:  #endif line should be "#endif  // SRC_OBJECTIVE_MULTICLASS_OBJECTIVE_HPP_"  [build/header_guard] [5]
./src\objective\multiclass_objective.hpp:137:  Add #include  for max  [build/include_what_you_use] [4]
./src\objective\multiclass_objective.hpp:225:  Add #include  for string  [build/include_what_you_use] [4]
./src\objective\multiclass_objective.hpp:254:  Add #include  for unique_ptr<>  [build/include_what_you_use] [4]
Done processing ./src\objective\multiclass_objective.hpp
./src\metric\rank_metric.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\metric\rank_metric.hpp:1:  #ifndef header guard has wrong style, please use: SRC_METRIC_RANK_METRIC_HPP_  [build/header_guard] [5]
./src\metric\rank_metric.hpp:171:  #endif line should be "#endif  // SRC_METRIC_RANK_METRIC_HPP_"  [build/header_guard] [5]
./src\metric\rank_metric.hpp:152:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./src\metric\rank_metric.hpp
./src\lightgbm_R.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\lightgbm_R.cpp:34:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
Done processing ./src\lightgbm_R.cpp
./include\LightGBM\feature_group.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\feature_group.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_FEATURE_GROUP_H_  [build/header_guard] [5]
./include\LightGBM\feature_group.h:246:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_FEATURE_GROUP_H_"  [build/header_guard] [5]
./include\LightGBM\feature_group.h:31:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr>& bin_mappers  [runtime/references] [2]
./include\LightGBM\feature_group.h:54:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr>& bin_mappers  [runtime/references] [2]
./include\LightGBM\feature_group.h:215:  Missing space before {  [whitespace/braces] [5]
./include\LightGBM\feature_group.h:222:  Missing space before ( in for(  [whitespace/parens] [5]
./include\LightGBM\feature_group.h:222:  Missing space before {  [whitespace/braces] [5]
Done processing ./include\LightGBM\feature_group.h
./src\metric\dcg_calculator.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\metric\dcg_calculator.cpp:25:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\metric\dcg_calculator.cpp
./src\treelearner\split_info.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\split_info.hpp:1:  #ifndef header guard has wrong style, please use: SRC_TREELEARNER_SPLIT_INFO_HPP_  [build/header_guard] [5]
./src\treelearner\split_info.hpp:285:  #endif line should be "#endif  // SRC_TREELEARNER_SPLIT_INFO_HPP_"  [build/header_guard] [5]
./src\treelearner\split_info.hpp:42:  Add #include  for vector<>  [build/include_what_you_use] [4]
Done processing ./src\treelearner\split_info.hpp
./src\metric\binary_metric.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\metric\binary_metric.hpp:1:  #ifndef header guard has wrong style, please use: SRC_METRIC_BINARY_METRIC_HPP_  [build/header_guard] [5]
./src\metric\binary_metric.hpp:263:  #endif line should be "#endif  // SRC_METRIC_BINARY_METRIC_HPP_"  [build/header_guard] [5]
./src\metric\binary_metric.hpp:259:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./src\metric\binary_metric.hpp
./src\metric\map_metric.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\metric\map_metric.hpp:1:  #ifndef header guard has wrong style, please use: SRC_METRIC_MAP_METRIC_HPP_  [build/header_guard] [5]
./src\metric\map_metric.hpp:168:  #endif line should be "#endif  // SRC_METRIC_MAP_METRIC_HPP_"  [build/header_guard] [5]
./src\metric\map_metric.hpp:99:  Add #include  for min  [build/include_what_you_use] [4]
./src\metric\map_metric.hpp:162:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./src\metric\map_metric.hpp
./src\network\linkers_mpi.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\network\linkers_mpi.cpp:2:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\network\linkers_mpi.cpp
./include\LightGBM\network.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\network.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_NETWORK_H_  [build/header_guard] [5]
./include\LightGBM\network.h:307:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_NETWORK_H_"  [build/header_guard] [5]
./include\LightGBM\network.h:166:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:190:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:214:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:236:  Is this a non-const reference? If so, make const or use a pointer: std::vector& local  [runtime/references] [2]
Done processing ./include\LightGBM\network.h
./src\io\parser.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\parser.cpp:25:  Is this a non-const reference? If so, make const or use a pointer: std::string& str  [runtime/references] [2]
./src\io\parser.cpp:39:  Is this a non-const reference? If so, make const or use a pointer: std::string& str  [runtime/references] [2]
./src\io\parser.cpp:52:  Is this a non-const reference? If so, make const or use a pointer: std::string& str  [runtime/references] [2]
./src\io\parser.cpp:72:  Is this a non-const reference? If so, make const or use a pointer: std::string& line  [runtime/references] [2]
./src\io\parser.cpp:72:  Is this a non-const reference? If so, make const or use a pointer: std::vector& buffer  [runtime/references] [2]
./src\io\parser.cpp:154:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\io\parser.cpp:154:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\io\parser.cpp:158:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\io\parser.cpp:158:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\io\parser.cpp:100:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./src\io\parser.cpp
./src\objective\regression_objective.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\objective\regression_objective.hpp:1:  #ifndef header guard has wrong style, please use: SRC_OBJECTIVE_REGRESSION_OBJECTIVE_HPP_  [build/header_guard] [5]
./src\objective\regression_objective.hpp:814:  #endif line should be "#endif  // SRC_OBJECTIVE_REGRESSION_OBJECTIVE_HPP_"  [build/header_guard] [5]
./src\objective\regression_objective.hpp:61:  Missing space before ( in if(  [whitespace/parens] [5]
./src\objective\regression_objective.hpp:61:  Missing space before {  [whitespace/braces] [5]
./src\objective\regression_objective.hpp:433:  Using C-style cast.  Use reinterpret_cast<label_t>(...) instead  [readability/casting] [4]
./src\objective\regression_objective.hpp:645:  Add #include  for max  [build/include_what_you_use] [4]
./src\objective\regression_objective.hpp:778:  Add #include  for string  [build/include_what_you_use] [4]
./src\objective\regression_objective.hpp:778:  Add #include  for vector<>  [build/include_what_you_use] [4]
Done processing ./src\objective\regression_objective.hpp
./src\treelearner\gpu_tree_learner.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\gpu_tree_learner.cpp:2:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\gpu_tree_learner.cpp:6:  Found C system header after other header. Should be: gpu_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\gpu_tree_learner.cpp:7:  Found C system header after other header. Should be: gpu_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\gpu_tree_learner.cpp:8:  Found C system header after other header. Should be: gpu_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\gpu_tree_learner.cpp:10:  Found C++ system header after other header. Should be: gpu_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\gpu_tree_learner.cpp:11:  Found C++ system header after other header. Should be: gpu_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\gpu_tree_learner.cpp:106:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:111:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:113:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:154:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:154:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:173:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:173:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:178:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:178:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:186:  Using C-style cast.  Use reinterpret_cast<void>(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:194:  Using C-style cast.  Use reinterpret_cast<HistType>(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:212:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:212:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:321:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./src\treelearner\gpu_tree_learner.cpp:332:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:334:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:341:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:341:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:356:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:363:  Using C-style cast.  Use reinterpret_cast<Feature4>(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:367:  Using C-style cast.  Use reinterpret_cast<Feature4>(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:372:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:414:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:414:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:426:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:426:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:433:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:433:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:438:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:438:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:473:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:473:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:477:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:477:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:487:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:487:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:495:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:495:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:499:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:499:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:513:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:513:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:675:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:675:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:708:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:710:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\treelearner\gpu_tree_learner.cpp:723:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:723:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:729:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:729:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:735:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:735:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:785:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:785:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:819:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:819:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:915:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:915:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:928:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:928:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:948:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:948:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:985:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:985:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:1010:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:1010:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:1064:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\treelearner\gpu_tree_learner.cpp:1064:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\treelearner\gpu_tree_learner.cpp:564:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./src\treelearner\gpu_tree_learner.cpp
./src\boosting\prediction_early_stop.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\prediction_early_stop.cpp:11:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
Done processing ./src\boosting\prediction_early_stop.cpp
./src\io\json11.cpp:53:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:57:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:67:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:73:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:77:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:114:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:126:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:294:  Else clause should never be on same line as else (use 2 lines)  [whitespace/newline] [4]
./src\io\json11.cpp:337:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
./src\io\json11.cpp:349:  const string& members are dangerous. It is much better to use alternatives, such as pointers or simple constants.  [runtime/member_string_references] [2]
./src\io\json11.cpp:390:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./src\io\json11.cpp:398:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\io\json11.cpp:398:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\io\json11.cpp:411:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\io\json11.cpp:430:  Empty loop bodies should use {} or continue  [whitespace/empty_loop_body] [5]
./src\io\json11.cpp:441:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\io\json11.cpp:443:  Using C-style cast.  Use static_cast(...) instead  [readability/casting] [4]
./src\io\json11.cpp:452:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
./src\io\json11.cpp:452:  Is this a non-const reference? If so, make const or use a pointer: string & out  [runtime/references] [2]
./src\io\json11.cpp:479:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
./src\io\json11.cpp:523:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
Done processing ./src\io\json11.cpp
./include\LightGBM\dataset.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\dataset.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_DATASET_H_  [build/header_guard] [5]
./include\LightGBM\dataset.h:631:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_DATASET_H_"  [build/header_guard] [5]
./include\LightGBM\dataset.h:17:   is an unapproved C++11 header.  [build/c++11] [5]
./include\LightGBM\dataset.h:287:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr>& bin_mappers  [runtime/references] [2]
./include\LightGBM\dataset.h:405:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr>& ordered_bins  [runtime/references] [2]
./include\LightGBM\dataset.h:593:  Add #include  for unique_ptr<>  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\dataset.h
./src\boosting\gbdt.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\gbdt.cpp:1:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\boosting\gbdt.cpp:14:   is an unapproved C++11 header.  [build/c++11] [5]
./src\boosting\gbdt.cpp:264:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\boosting\gbdt.cpp
./src\treelearner\leaf_splits.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\leaf_splits.hpp:1:  #ifndef header guard has wrong style, please use: SRC_TREELEARNER_LEAF_SPLITS_HPP_  [build/header_guard] [5]
./src\treelearner\leaf_splits.hpp:162:  #endif line should be "#endif  // SRC_TREELEARNER_LEAF_SPLITS_HPP_"  [build/header_guard] [5]
./src\treelearner\leaf_splits.hpp:6:  Found C system header after C++ system header. Should be: leaf_splits.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\leaf_splits.hpp:9:  Found C++ system header after other header. Should be: leaf_splits.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\leaf_splits.hpp:18:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
Done processing ./src\treelearner\leaf_splits.hpp
./include\LightGBM\utils\file_io.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\file_io.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_FILE_IO_H_  [build/header_guard] [5]
./include\LightGBM\utils\file_io.h:74:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_FILE_IO_H_"  [build/header_guard] [5]
./include\LightGBM\utils\file_io.h:69:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\utils\file_io.h
./src\io\parser.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\parser.hpp:1:  #ifndef header guard has wrong style, please use: SRC_IO_PARSER_HPP_  [build/header_guard] [5]
./src\io\parser.hpp:129:  #endif line should be "#endif  // SRC_IO_PARSER_HPP_"  [build/header_guard] [5]
./src\io\parser.hpp:32:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\io\parser.hpp:32:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
Done processing ./src\io\parser.hpp
./src\treelearner\parallel_tree_learner.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\parallel_tree_learner.h:1:  #ifndef header guard has wrong style, please use: SRC_TREELEARNER_PARALLEL_TREE_LEARNER_H_  [build/header_guard] [5]
./src\treelearner\parallel_tree_learner.h:212:  #endif line should be "#endif  // SRC_TREELEARNER_PARALLEL_TREE_LEARNER_H_"  [build/header_guard] [5]
./src\treelearner\parallel_tree_learner.h:4:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\parallel_tree_learner.h:5:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\parallel_tree_learner.h:6:  Found C system header after other header. Should be: parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\parallel_tree_learner.h:8:  Found C system header after other header. Should be: parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\parallel_tree_learner.h:10:  Found C++ system header after other header. Should be: parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\parallel_tree_learner.h:11:  Found C++ system header after other header. Should be: parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\parallel_tree_learner.h:12:  Found C++ system header after other header. Should be: parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
Done processing ./src\treelearner\parallel_tree_learner.h
./include\LightGBM\config.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\config.h:3:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_CONFIG_H_  [build/header_guard] [5]
./include\LightGBM\config.h:880:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_CONFIG_H_"  [build/header_guard] [5]
./include\LightGBM\config.h:74:  Is this a non-const reference? If so, make const or use a pointer: std::unordered_map<std::string, std::string>& params  [runtime/references] [2]
Done processing ./include\LightGBM\config.h
./src\io\dense_nbits_bin.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\dense_nbits_bin.hpp:1:  #ifndef header guard has wrong style, please use: SRC_IO_DENSE_NBITS_BIN_HPP_  [build/header_guard] [5]
./src\io\dense_nbits_bin.hpp:397:  #endif line should be "#endif  // SRC_IO_DENSE_NBITS_BIN_HPP_"  [build/header_guard] [5]
./src\io\dense_nbits_bin.hpp:41:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./src\io\dense_nbits_bin.hpp:214:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\dense_nbits_bin.hpp:275:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\dense_nbits_bin.hpp:372:  Missing space before {  [whitespace/braces] [5]
./src\io\dense_nbits_bin.hpp:373:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
Done processing ./src\io\dense_nbits_bin.hpp
./include\LightGBM\boosting.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\boosting.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_BOOSTING_H_  [build/header_guard] [5]
./include\LightGBM\boosting.h:304:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_BOOSTING_H_"  [build/header_guard] [5]
./include\LightGBM\boosting.h:158:  Add #include <unordered_map> for unordered_map<>  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\boosting.h
./src\objective\objective_function.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
Done processing ./src\objective\objective_function.cpp
./include\LightGBM\tree.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\tree.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_TREE_H_  [build/header_guard] [5]
./include\LightGBM\tree.h:517:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_TREE_H_"  [build/header_guard] [5]
./include\LightGBM\tree.h:262:  Using deprecated casting style.  Use static_cast(...) instead  [readability/casting] [4]
./include\LightGBM\tree.h:271:  Using deprecated casting style.  Use static_cast(...) instead  [readability/casting] [4]
./include\LightGBM\tree.h:334:  Complex multi-line /.../-style comment found. Lint may give bogus warnings.  Consider replacing these with //-style comments, with #if 0...#endif, or with more clearly structured multi-line comments.  [readability/multiline_comment] [5]
./include\LightGBM\tree.h:334:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./include\LightGBM\tree.h:334:  Should have a space between // and comment  [whitespace/comments] [4]
./include\LightGBM\tree.h:334:  Extra space for operator !   [whitespace/operators] [4]
./include\LightGBM\tree.h:469:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./include\LightGBM\tree.h:500:  Add #include <unordered_map> for unordered_map<>  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\tree.h
./src\objective\xentropy_objective.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\objective\xentropy_objective.hpp:1:  #ifndef header guard has wrong style, please use: SRC_OBJECTIVE_XENTROPY_OBJECTIVE_HPP_  [build/header_guard] [5]
./src\objective\xentropy_objective.hpp:269:  #endif line should be "#endif  // SRC_OBJECTIVE_XENTROPY_OBJECTIVE_HPP_"  [build/header_guard] [5]
./src\objective\xentropy_objective.hpp:60:  Using C-style cast.  Use reinterpret_cast<label_t>(...) instead  [readability/casting] [4]
./src\objective\xentropy_objective.hpp:163:  Using C-style cast.  Use reinterpret_cast<label_t>(...) instead  [readability/casting] [4]
./src\objective\xentropy_objective.hpp:254:  private: should be indented +1 space inside class CrossEntropyLambda  [whitespace/indent] [3]
./src\objective\xentropy_objective.hpp:124:  Add #include  for max  [build/include_what_you_use] [4]
./src\objective\xentropy_objective.hpp:148:  Add #include  for vector<>  [build/include_what_you_use] [4]
./src\objective\xentropy_objective.hpp:226:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./src\objective\xentropy_objective.hpp
./src\application\predictor.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\application\predictor.hpp:1:  #ifndef header guard has wrong style, please use: SRC_APPLICATION_PREDICTOR_HPP_  [build/header_guard] [5]
./src\application\predictor.hpp:257:  #endif line should be "#endif  // SRC_APPLICATION_PREDICTOR_HPP_"  [build/header_guard] [5]
./src\application\predictor.hpp:41:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\application\predictor.hpp:42:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\application\predictor.hpp:234:  Add #include <unordered_map> for unordered_map<>  [build/include_what_you_use] [4]
Done processing ./src\application\predictor.hpp
./src\treelearner\voting_parallel_tree_learner.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\voting_parallel_tree_learner.cpp:1:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\voting_parallel_tree_learner.cpp:3:  Found C system header after other header. Should be: voting_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\voting_parallel_tree_learner.cpp:5:  Found C++ system header after other header. Should be: voting_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\voting_parallel_tree_learner.cpp:6:  Found C++ system header after other header. Should be: voting_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\voting_parallel_tree_learner.cpp:7:  Found C++ system header after other header. Should be: voting_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\voting_parallel_tree_learner.cpp:134:  Using C-style cast.  Use reinterpret_cast<void>(...) instead  [readability/casting] [4]
Done processing ./src\treelearner\voting_parallel_tree_learner.cpp
./src\treelearner\data_parallel_tree_learner.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\data_parallel_tree_learner.cpp:1:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\data_parallel_tree_learner.cpp:3:  Found C++ system header after other header. Should be: data_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\data_parallel_tree_learner.cpp:5:  Found C++ system header after other header. Should be: data_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\data_parallel_tree_learner.cpp:6:  Found C++ system header after other header. Should be: data_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\data_parallel_tree_learner.cpp:138:  Using C-style cast.  Use reinterpret_cast<void>(...) instead  [readability/casting] [4]
Done processing ./src\treelearner\data_parallel_tree_learner.cpp
./include\LightGBM\utils\log.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\log.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_LOG_H_  [build/header_guard] [5]
./include\LightGBM\utils\log.h:103:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_LOG_H_"  [build/header_guard] [5]
./include\LightGBM\utils\log.h:83:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\utils\log.h
./include\LightGBM\utils\array_args.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\array_args.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_ARRAY_ARGS_H_  [build/header_guard] [5]
./include\LightGBM\utils\array_args.h:191:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_ARRAY_ARGS_H_"  [build/header_guard] [5]
./include\LightGBM\utils\array_args.h:6:  Found C system header after C++ system header. Should be: array_args.h, c system, c++ system, other.  [build/include_order] [4]
./include\LightGBM\utils\array_args.h:113:  Empty loop bodies should use {} or continue  [whitespace/empty_loop_body] [5]
./include\LightGBM\utils\array_args.h:124:  Add #include  for swap  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\utils\array_args.h
./include\LightGBM\utils\openmp_wrapper.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\utils\openmp_wrapper.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_UTILS_OPENMP_WRAPPER_H_  [build/header_guard] [5]
./include\LightGBM\utils\openmp_wrapper.h:76:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_UTILS_OPENMP_WRAPPER_H_"  [build/header_guard] [5]
./include\LightGBM\utils\openmp_wrapper.h:8:   is an unapproved C++11 header.  [build/c++11] [5]
./include\LightGBM\utils\openmp_wrapper.h:11:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./include\LightGBM\utils\openmp_wrapper.h
./src\treelearner\feature_parallel_tree_learner.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\feature_parallel_tree_learner.cpp:1:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\feature_parallel_tree_learner.cpp:3:  Found C++ system header after other header. Should be: feature_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\feature_parallel_tree_learner.cpp:5:  Found C++ system header after other header. Should be: feature_parallel_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
Done processing ./src\treelearner\feature_parallel_tree_learner.cpp
./src\boosting\rf.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\rf.hpp:1:  #ifndef header guard has wrong style, please use: SRC_BOOSTING_RF_HPP_  [build/header_guard] [5]
./src\boosting\rf.hpp:209:  #endif line should be "#endif  // SRC_BOOSTING_RF_HPP_"  [build/header_guard] [5]
./src\boosting\rf.hpp:7:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\boosting\rf.hpp:9:  Found C++ system header after other header. Should be: rf.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\rf.hpp:10:  Found C++ system header after other header. Should be: rf.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\rf.hpp:11:  Found C++ system header after other header. Should be: rf.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\rf.hpp:12:  Found C++ system header after other header. Should be: rf.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\rf.hpp:105:  Add #include  for unique_ptr<>  [build/include_what_you_use] [4]
./src\boosting\rf.hpp:153:  Add #include  for move  [build/include_what_you_use] [4]
Done processing ./src\boosting\rf.hpp
./include\LightGBM\prediction_early_stop.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\prediction_early_stop.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_PREDICTION_EARLY_STOP_H_  [build/header_guard] [5]
./include\LightGBM\prediction_early_stop.h:32:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_PREDICTION_EARLY_STOP_H_"  [build/header_guard] [5]
./include\LightGBM\prediction_early_stop.h:7:  Found C system header after C++ system header. Should be: prediction_early_stop.h, c system, c++ system, other.  [build/include_order] [4]
Done processing ./include\LightGBM\prediction_early_stop.h
./src\io\ordered_sparse_bin.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\ordered_sparse_bin.hpp:1:  #ifndef header guard has wrong style, please use: SRC_IO_ORDERED_SPARSE_BIN_HPP_  [build/header_guard] [5]
./src\io\ordered_sparse_bin.hpp:211:  #endif line should be "#endif  // SRC_IO_ORDERED_SPARSE_BIN_HPP_"  [build/header_guard] [5]
./src\io\ordered_sparse_bin.hpp:10:   is an unapproved C++11 header.  [build/c++11] [5]
./src\io\ordered_sparse_bin.hpp:35:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./src\io\ordered_sparse_bin.hpp:178:  Add #include  for swap  [build/include_what_you_use] [4]
Done processing ./src\io\ordered_sparse_bin.hpp
./src\boosting\dart.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\dart.hpp:1:  #ifndef header guard has wrong style, please use: SRC_BOOSTING_DART_HPP_  [build/header_guard] [5]
./src\boosting\dart.hpp:205:  #endif line should be "#endif  // SRC_BOOSTING_DART_HPP_"  [build/header_guard] [5]
./src\boosting\dart.hpp:6:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\boosting\dart.hpp:8:  Found C++ system header after other header. Should be: dart.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\dart.hpp:9:  Found C++ system header after other header. Should be: dart.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\dart.hpp:10:  Found C++ system header after other header. Should be: dart.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\dart.hpp:11:  Found C++ system header after other header. Should be: dart.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\dart.hpp:112:  Add #include  for min  [build/include_what_you_use] [4]
Done processing ./src\boosting\dart.hpp
./src\metric\xentropy_metric.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\metric\xentropy_metric.hpp:1:  #ifndef header guard has wrong style, please use: SRC_METRIC_XENTROPY_METRIC_HPP_  [build/header_guard] [5]
./src\metric\xentropy_metric.hpp:356:  #endif line should be "#endif  // SRC_METRIC_XENTROPY_METRIC_HPP_"  [build/header_guard] [5]
./src\metric\xentropy_metric.hpp:89:  Using C-style cast.  Use reinterpret_cast<label_t>(...) instead  [readability/casting] [4]
./src\metric\xentropy_metric.hpp:180:  Using C-style cast.  Use reinterpret_cast<label_t*>(...) instead  [readability/casting] [4]
./src\metric\xentropy_metric.hpp:264:  Using C-style cast.  Use reinterpret_cast<label_t*>(...) instead  [readability/casting] [4]
./src\metric\xentropy_metric.hpp:351:  Add #include  for string  [build/include_what_you_use] [4]
Done processing ./src\metric\xentropy_metric.hpp
./src\c_api.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\c_api.cpp:23:   is an unapproved C++11 header.  [build/c++11] [5]
./src\c_api.cpp:220:  Missing username in TODO; it should look like "// TODO(my_username): Stuff."  [readability/todo] [2]
./src\c_api.cpp:382:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\c_api.cpp:713:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./src\c_api.cpp:758:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./src\c_api.cpp:872:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\c_api.cpp:970:  Missing space before ( in if(  [whitespace/parens] [5]
./src\c_api.cpp:970:  Missing space before {  [whitespace/braces] [5]
Done processing ./src\c_api.cpp
./include\LightGBM\export.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\export.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_EXPORT_H_  [build/header_guard] [5]
./include\LightGBM\export.h:21:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_EXPORT_H_"  [build/header_guard] [5]
Done processing ./include\LightGBM\export.h
./src\io\dataset.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\io\dataset.cpp:7:   is an unapproved C++11 header.  [build/c++11] [5]
./src\io\dataset.cpp:28:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\dataset.cpp:61:  Is this a non-const reference? If so, make const or use a pointer: std::vector& mark  [runtime/references] [2]
./src\io\dataset.cpp:139:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr>& bin_mappers  [runtime/references] [2]
./src\io\dataset.cpp:581:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:585:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
./src\io\dataset.cpp:585:  If an else has a brace on one side, it should have it on both  [readability/braces] [5]
./src\io\dataset.cpp:710:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:717:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:717:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:721:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:721:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:725:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:725:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:729:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:729:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:734:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:734:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:739:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:739:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:741:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:741:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:743:  Missing space before ( in if(  [whitespace/parens] [5]
./src\io\dataset.cpp:743:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:744:  Tab found; better to use spaces  [whitespace/tab] [1]
./src\io\dataset.cpp:746:  Tab found; better to use spaces  [whitespace/tab] [1]
./src\io\dataset.cpp:808:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
./src\io\dataset.cpp:837:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
./src\io\dataset.cpp:870:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
./src\io\dataset.cpp:898:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
./src\io\dataset.cpp:945:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:945:  Is this a non-const reference? If so, make const or use a pointer: std::vector& dest  [runtime/references] [2]
./src\io\dataset.cpp:947:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:947:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:953:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:953:  Is this a non-const reference? If so, make const or use a pointer: std::vector& dest  [runtime/references] [2]
./src\io\dataset.cpp:955:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:955:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:961:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:961:  Is this a non-const reference? If so, make const or use a pointer: std::vector& dest  [runtime/references] [2]
./src\io\dataset.cpp:962:  Missing space before ( in if(  [whitespace/parens] [5]
./src\io\dataset.cpp:962:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:964:  Missing space before ( in if(  [whitespace/parens] [5]
./src\io\dataset.cpp:964:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:965:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:965:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:968:  Missing space before ( in if(  [whitespace/parens] [5]
./src\io\dataset.cpp:968:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:969:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:969:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:976:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:977:  Missing space before ( in if(  [whitespace/parens] [5]
./src\io\dataset.cpp:977:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:984:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:984:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:987:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:987:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:988:  Missing space before ( in if(  [whitespace/parens] [5]
./src\io\dataset.cpp:988:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:998:  Missing space before ( in for(  [whitespace/parens] [5]
./src\io\dataset.cpp:998:  Missing space before {  [whitespace/braces] [5]
./src\io\dataset.cpp:1005:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
Done processing ./src\io\dataset.cpp
./src\boosting\gbdt.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\gbdt.h:1:  #ifndef header guard has wrong style, please use: SRC_BOOSTING_GBDT_H_  [build/header_guard] [5]
./src\boosting\gbdt.h:492:  #endif line should be "#endif  // SRC_BOOSTING_GBDT_H_"  [build/header_guard] [5]
./src\boosting\gbdt.h:11:  Found C++ system header after other header. Should be: gbdt.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\gbdt.h:12:  Found C++ system header after other header. Should be: gbdt.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\gbdt.h:13:  Found C++ system header after other header. Should be: gbdt.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\gbdt.h:14:  Found C++ system header after other header. Should be: gbdt.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\gbdt.h:15:  Found C++ system header after other header. Should be: gbdt.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\gbdt.h:16:  Found C++ system header after other header. Should be: gbdt.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\gbdt.h:16:   is an unapproved C++11 header.  [build/c++11] [5]
./src\boosting\gbdt.h:17:  Found C++ system header after other header. Should be: gbdt.h, c system, c++ system, other.  [build/include_order] [4]
./src\boosting\gbdt.h:19:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\boosting\gbdt.h:137:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:173:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:180:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:268:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:276:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:355:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:381:  Is this a non-const reference? If so, make const or use a pointer: Random& cur_rand  [runtime/references] [2]
./src\boosting\gbdt.h:94:  Add #include  for move  [build/include_what_you_use] [4]
./src\boosting\gbdt.h:233:  Add #include <unordered_map> for unordered_map<>  [build/include_what_you_use] [4]
./src\boosting\gbdt.h:330:  Add #include  for min  [build/include_what_you_use] [4]
Done processing ./src\boosting\gbdt.h
./include\LightGBM\bin.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./include\LightGBM\bin.h:1:  #ifndef header guard has wrong style, please use: INCLUDE_LIGHTGBM_BIN_H_  [build/header_guard] [5]
./include\LightGBM\bin.h:497:  #endif line should be "#endif  // INCLUDE_LIGHTGBM_BIN_H_"  [build/header_guard] [5]
./include\LightGBM\bin.h:176:  Add #include  for string  [build/include_what_you_use] [4]
./include\LightGBM\bin.h:181:  Add #include  for numeric_limits<>  [build/include_what_you_use] [4]
Done processing ./include\LightGBM\bin.h
./src\boosting\gbdt_prediction.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\gbdt_prediction.cpp:1:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\gbdt_prediction.cpp
./src\network\socket_wrapper.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\network\socket_wrapper.hpp:1:  #ifndef header guard has wrong style, please use: SRC_NETWORK_SOCKET_WRAPPER_HPP_  [build/header_guard] [5]
./src\network\socket_wrapper.hpp:300:  #endif line should be "#endif  // SRC_NETWORK_SOCKET_WRAPPER_HPP_"  [build/header_guard] [5]
./src\network\socket_wrapper.hpp:18:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:19:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:20:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:21:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:22:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:23:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:24:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:25:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:176:  Using C-style cast.  Use reinterpret_cast<IP_ADAPTER_INFO *>(...) instead  [readability/casting] [4]
./src\network\socket_wrapper.hpp:184:  Using C-style cast.  Use reinterpret_cast<IP_ADAPTER_INFO *>(...) instead  [readability/casting] [4]
./src\network\socket_wrapper.hpp:216:  Are you taking an address of a cast?  This is dangerous: could be a temp var.  Take the address before doing the cast, rather than after  [runtime/casting] [4]
Done processing ./src\network\socket_wrapper.hpp
./src\metric\metric.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
Done processing ./src\metric\metric.cpp
./src\treelearner\serial_tree_learner.h:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\treelearner\serial_tree_learner.h:1:  #ifndef header guard has wrong style, please use: SRC_TREELEARNER_SERIAL_TREE_LEARNER_H_  [build/header_guard] [5]
./src\treelearner\serial_tree_learner.h:183:  #endif line should be "#endif  // SRC_TREELEARNER_SERIAL_TREE_LEARNER_H_"  [build/header_guard] [5]
./src\treelearner\serial_tree_learner.h:16:  Found C++ system header after other header. Should be: serial_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\serial_tree_learner.h:17:  Found C++ system header after other header. Should be: serial_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\serial_tree_learner.h:18:  Found C++ system header after other header. Should be: serial_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\serial_tree_learner.h:19:  Found C++ system header after other header. Should be: serial_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\serial_tree_learner.h:20:  Found C++ system header after other header. Should be: serial_tree_learner.h, c system, c++ system, other.  [build/include_order] [4]
./src\treelearner\serial_tree_learner.h:27:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\treelearner\serial_tree_learner.h:105:  Is this a non-const reference? If so, make const or use a pointer: Json& forced_split_json  [runtime/references] [2]
Done processing ./src\treelearner\serial_tree_learner.h
./src\io\metadata.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
Done processing ./src\io\metadata.cpp
./src\network\linkers_socket.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\network\linkers_socket.cpp:2:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\network\linkers_socket.cpp:14:   is an unapproved C++11 header.  [build/c++11] [5]
./src\network\linkers_socket.cpp:15:   is an unapproved C++11 header.  [build/c++11] [5]
Done processing ./src\network\linkers_socket.cpp
./src\boosting\score_updater.hpp:0:  No copyright message found.  You should have a line: "Copyright [year] "  [legal/copyright] [5]
./src\boosting\score_updater.hpp:1:  #ifndef header guard has wrong style, please use: SRC_BOOSTING_SCORE_UPDATER_HPP_  [build/header_guard] [5]
./src\boosting\score_updater.hpp:123:  #endif line should be "#endif  // SRC_BOOSTING_SCORE_UPDATER_HPP_"  [build/header_guard] [5]
./src\boosting\score_updater.hpp:118:  Add #include  for vector<>  [build/include_what_you_use] [4]
Done processing ./src\boosting\score_updater.hpp
Total errors found: 752

@guolinke WDYT about copyright message?

for the copyright, I think it is something like:
Copyright (c) 2016 Microsoft Corporation. All rights reserved.
Licensed under the MIT License. See License file in the project root for license information.

@guolinke OK. Just MS corp without ... and contributors?

@guolinke OK. Just MS corp without ... and contributors?

Yeah, I think it is this, under Microsoft MIT license.
I also check other MS opensource projects, and they are this format.

@guolinke Got it! I'll create PR for this.

@guolinke Can all header files be moved to include/LightGBM folder in order to fix Include the directory when naming .h files  [build/include_subdir] [4] error?
Then it will be possible to rewrite such includes with directory:
#include "gpu_tree_learner.h"
#include "serial_tree_learner.h"

@StrikerRUS
There a trade-off here. These header files are not exposed to public, therefore, we put them in them src folder.

@guolinke Oh, I see. Thanks for the explanation!

5b5b98235e4fa8c1eed67f57bf5c409bbe1a09e0
I think we may not check header guards because there are some problems with tests for them: https://github.com/cpplint/cpplint/issues/44.
cpplint --linelength=999 --filter=-build/header_guard --recursive ./src ./include

Total errors found: 203

Report (Clickable):

./src\application\application.cpp:19:  <chrono> is an unapproved C++11 header.  [build/c++11] [5]
Done processing ./src\application\application.cpp
./src\application\predictor.hpp:45:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\application\predictor.hpp:46:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
Done processing ./src\application\predictor.hpp
Done processing ./src\treelearner\split_info.hpp
Done processing ./include\LightGBM\export.h
./include\LightGBM\tree.h:474:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
Done processing ./include\LightGBM\tree.h
Done processing ./src\io\dataset_loader.cpp
./src\io\dense_bin.hpp:51:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./src\io\dense_bin.hpp:195:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\dense_bin.hpp:256:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
Done processing ./src\io\dense_bin.hpp
Done processing ./src\objective\regression_objective.hpp
./src\treelearner\serial_tree_learner.h:32:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\treelearner\serial_tree_learner.h:110:  Is this a non-const reference? If so, make const or use a pointer: Json& forced_split_json  [runtime/references] [2]
Done processing ./src\treelearner\serial_tree_learner.h
./src\io\file_io.cpp:57:  For a static/global string constant, use a C style string instead: "const char kHdfsProto[]".  [runtime/string] [4]
Done processing ./src\io\file_io.cpp
Done processing ./include\LightGBM\utils\threading.h
./src\treelearner\serial_tree_learner.cpp:5:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\serial_tree_learner.cpp:288:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\treelearner\serial_tree_learner.cpp:875:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\treelearner\serial_tree_learner.cpp:915:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\treelearner\serial_tree_learner.cpp
./include\LightGBM\json11.hpp:92:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:93:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:94:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:95:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:96:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:97:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:98:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:99:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:100:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:101:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:102:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:106:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:113:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:119:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:123:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./include\LightGBM\json11.hpp:156:  Is this a non-const reference? If so, make const or use a pointer: std::string &out  [runtime/references] [2]
./include\LightGBM\json11.hpp:165:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:168:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:180:  Is this a non-const reference? If so, make const or use a pointer: std::string::size_type & parser_stop_pos  [runtime/references] [2]
./include\LightGBM\json11.hpp:181:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:186:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:205:  Is this a non-const reference? If so, make const or use a pointer: std::string & err  [runtime/references] [2]
./include\LightGBM\json11.hpp:220:  Is this a non-const reference? If so, make const or use a pointer: std::string &out  [runtime/references] [2]
Done processing ./include\LightGBM\json11.hpp
./src\network\socket_wrapper.hpp:22:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:23:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:24:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:25:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:26:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:27:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:28:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:29:  Found C system header after C++ system header. Should be: socket_wrapper.h, c system, c++ system, other.  [build/include_order] [4]
./src\network\socket_wrapper.hpp:219:  Are you taking an address of a cast?  This is dangerous: could be a temp var.  Take the address before doing the cast, rather than after  [runtime/casting] [4]
Done processing ./src\network\socket_wrapper.hpp
./src\treelearner\voting_parallel_tree_learner.cpp:11:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\voting_parallel_tree_learner.cpp:138:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
Done processing ./src\treelearner\voting_parallel_tree_learner.cpp
Done processing ./include\LightGBM\prediction_early_stop.h
Done processing ./src\network\linker_topo.cpp
Done processing ./src\metric\metric.cpp
./src\treelearner\gpu_tree_learner.h:24:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\gpu_tree_learner.h:37:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\treelearner\gpu_tree_learner.h:178:  Line contains only semicolon. If this should be an empty statement, use {} instead.  [whitespace/semicolon] [5]
./src\treelearner\gpu_tree_learner.h:182:  Line contains only semicolon. If this should be an empty statement, use {} instead.  [whitespace/semicolon] [5]
./src\treelearner\gpu_tree_learner.h:186:  Line contains only semicolon. If this should be an empty statement, use {} instead.  [whitespace/semicolon] [5]
Done processing ./src\treelearner\gpu_tree_learner.h
Done processing ./src\io\tree.cpp
Done processing ./include\LightGBM\objective_function.h
Done processing ./src\main.cpp
./include\LightGBM\R_object_helper.h:126:  Using C-style cast.  Use reinterpret_cast<SEXPREC_ALIGN *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:128:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:130:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:132:  Using C-style cast.  Use reinterpret_cast<int64_t *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:134:  Using C-style cast.  Use reinterpret_cast<double *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:136:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:138:  Using C-style cast.  Use reinterpret_cast<int64_t *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:145:  Using C-style cast.  Use reinterpret_cast<int64_t *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:159:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:169:  Using C-style cast.  Use reinterpret_cast<int32_t *>(...) instead  [readability/casting] [4]
./include\LightGBM\R_object_helper.h:183:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
Done processing ./include\LightGBM\R_object_helper.h
./include\LightGBM\network.h:169:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:193:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:217:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:239:  Is this a non-const reference? If so, make const or use a pointer: std::vector<T>& local  [runtime/references] [2]
Done processing ./include\LightGBM\network.h
./src\c_api.cpp:25:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
./src\c_api.cpp:385:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\c_api.cpp:877:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\c_api.cpp
Done processing ./src\metric\binary_metric.hpp
./src\io\parser.cpp:30:  Is this a non-const reference? If so, make const or use a pointer: std::string& str  [runtime/references] [2]
./src\io\parser.cpp:44:  Is this a non-const reference? If so, make const or use a pointer: std::string& str  [runtime/references] [2]
./src\io\parser.cpp:57:  Is this a non-const reference? If so, make const or use a pointer: std::string& str  [runtime/references] [2]
./src\io\parser.cpp:77:  Is this a non-const reference? If so, make const or use a pointer: std::string& line  [runtime/references] [2]
./src\io\parser.cpp:77:  Is this a non-const reference? If so, make const or use a pointer: std::vector<char>& buffer  [runtime/references] [2]
Done processing ./src\io\parser.cpp
./src\treelearner\parallel_tree_learner.h:15:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\parallel_tree_learner.h:16:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\treelearner\parallel_tree_learner.h
./include\LightGBM\utils\openmp_wrapper.h:14:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
Done processing ./include\LightGBM\utils\openmp_wrapper.h
./src\boosting\gbdt_prediction.cpp:9:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\gbdt_prediction.cpp
./src\io\ordered_sparse_bin.hpp:13:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
./src\io\ordered_sparse_bin.hpp:39:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
Done processing ./src\io\ordered_sparse_bin.hpp
Done processing ./include\LightGBM\boosting.h
./src\treelearner\feature_histogram.hpp:676:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
Done processing ./src\treelearner\feature_histogram.hpp
./src\io\config_auto.cpp:281:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\io\config_auto.cpp:287:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:294:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\io\config_auto.cpp:351:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:354:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:363:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:366:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:399:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:402:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:405:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:478:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:506:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:513:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:522:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:525:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:528:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\config_auto.cpp:539:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
Done processing ./src\io\config_auto.cpp
./src\treelearner\leaf_splits.hpp:22:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
Done processing ./src\treelearner\leaf_splits.hpp
./src\boosting\gbdt_model_text.cpp:13:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\boosting\gbdt_model_text.cpp:17:  For a static/global string constant, use a C style string instead: "const char kModelVersion[]".  [runtime/string] [4]
Done processing ./src\boosting\gbdt_model_text.cpp
Done processing ./src\metric\rank_metric.hpp
./src\boosting\goss.hpp:15:  <chrono> is an unapproved C++11 header.  [build/c++11] [5]
./src\boosting\goss.hpp:20:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\boosting\goss.hpp:91:  Is this a non-const reference? If so, make const or use a pointer: Random& cur_rand  [runtime/references] [2]
Done processing ./src\boosting\goss.hpp
Done processing ./include\LightGBM\metric.h
./src\metric\regression_metric.hpp:274:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\metric\regression_metric.hpp:296:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\metric\regression_metric.hpp
Done processing ./include\LightGBM\utils\file_io.h
Done processing ./include\LightGBM\bin.h
./src\treelearner\tree_learner.cpp:7:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\tree_learner.cpp:8:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\tree_learner.cpp:9:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\treelearner\tree_learner.cpp
./include\LightGBM\dataset_loader.h:55:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::string>& text_data  [runtime/references] [2]
Done processing ./include\LightGBM\dataset_loader.h
Done processing ./src\objective\binary_objective.hpp
./include\LightGBM\utils\text_reader.h:163:  Is this a non-const reference? If so, make const or use a pointer: Random& random  [runtime/references] [2]
./include\LightGBM\utils\text_reader.h:198:  Is this a non-const reference? If so, make const or use a pointer: Random& random  [runtime/references] [2]
Done processing ./include\LightGBM\utils\text_reader.h
./src\boosting\gbdt.cpp:5:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\boosting\gbdt.cpp:14:  <chrono> is an unapproved C++11 header.  [build/c++11] [5]
./src\boosting\gbdt.cpp:263:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\boosting\gbdt.cpp
./src\treelearner\feature_parallel_tree_learner.cpp:8:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\treelearner\feature_parallel_tree_learner.cpp
./include\LightGBM\utils\array_args.h:119:  Empty loop bodies should use {} or continue  [whitespace/empty_loop_body] [5]
Done processing ./include\LightGBM\utils\array_args.h
./src\io\sparse_bin.hpp:78:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./src\io\sparse_bin.hpp:148:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\sparse_bin.hpp:211:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
Done processing ./src\io\sparse_bin.hpp
./include\LightGBM\feature_group.h:34:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr<BinMapper>>& bin_mappers  [runtime/references] [2]
./include\LightGBM\feature_group.h:57:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr<BinMapper>>& bin_mappers  [runtime/references] [2]
Done processing ./include\LightGBM\feature_group.h
./src\io\dense_nbits_bin.hpp:45:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./src\io\dense_nbits_bin.hpp:218:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\io\dense_nbits_bin.hpp:279:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
Done processing ./src\io\dense_nbits_bin.hpp
./src\lightgbm_R.cpp:36:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
Done processing ./src\lightgbm_R.cpp
./src\io\json11.cpp:53:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:57:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:67:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:73:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:77:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:114:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:126:  Is this a non-const reference? If so, make const or use a pointer: string &out  [runtime/references] [2]
./src\io\json11.cpp:339:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
./src\io\json11.cpp:351:  const string& members are dangerous. It is much better to use alternatives, such as pointers or simple constants.  [runtime/member_string_references] [2]
./src\io\json11.cpp:431:  Empty loop bodies should use {} or continue  [whitespace/empty_loop_body] [5]
./src\io\json11.cpp:453:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
./src\io\json11.cpp:453:  Is this a non-const reference? If so, make const or use a pointer: string & out  [runtime/references] [2]
./src\io\json11.cpp:480:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
./src\io\json11.cpp:524:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
Done processing ./src\io\json11.cpp
Done processing ./src\metric\xentropy_metric.hpp
Done processing ./src\boosting\score_updater.hpp
./src\network\linkers_socket.cpp:12:  <chrono> is an unapproved C++11 header.  [build/c++11] [5]
./src\network\linkers_socket.cpp:14:  <thread> is an unapproved C++11 header.  [build/c++11] [5]
./src\network\linkers_socket.cpp:19:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\network\linkers_socket.cpp
Done processing ./src\treelearner\data_partition.hpp
./include\LightGBM\config.h:78:  Is this a non-const reference? If so, make const or use a pointer: std::unordered_map<std::string, std::string>& params  [runtime/references] [2]
Done processing ./include\LightGBM\config.h
Done processing ./src\metric\map_metric.hpp
./src\network\linkers_mpi.cpp:7:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\network\linkers_mpi.cpp
./src\treelearner\data_parallel_tree_learner.cpp:9:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\data_parallel_tree_learner.cpp:141:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
Done processing ./src\treelearner\data_parallel_tree_learner.cpp
Done processing ./include\LightGBM\meta.h
./src\io\bin.cpp:77:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\bin.cpp:197:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\bin.cpp:393:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\io\bin.cpp
./src\boosting\prediction_early_stop.cpp:16:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
Done processing ./src\boosting\prediction_early_stop.cpp
./include\LightGBM\c_api.h:990:  Almost always, snprintf is better than strcpy  [runtime/printf] [4]
Done processing ./include\LightGBM\c_api.h
./include\LightGBM\utils\common.h:27:  Include the directory when naming .h files  [build/include_subdir] [4]
./include\LightGBM\utils\common.h:303:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
./include\LightGBM\utils\common.h:374:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
./include\LightGBM\utils\common.h:414:  Closing ) should be moved to the previous line  [whitespace/parens] [2]
./include\LightGBM\utils\common.h:418:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
./include\LightGBM\utils\common.h:627:  Is this a non-const reference? If so, make const or use a pointer: std::vector<T1>& keys  [runtime/references] [2]
./include\LightGBM\utils\common.h:627:  Is this a non-const reference? If so, make const or use a pointer: std::vector<T2>& values  [runtime/references] [2]
./include\LightGBM\utils\common.h:648:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::vector<T>>& data  [runtime/references] [2]
./include\LightGBM\utils\common.h:824:  Is this a non-const reference? If so, make const or use a pointer: std::vector<uint32_t>& vec  [runtime/references] [2]
Done processing ./include\LightGBM\utils\common.h
./include\LightGBM\tree_learner.h:16:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./include\LightGBM\tree_learner.h:56:  Is this a non-const reference? If so, make const or use a pointer: Json& forced_split_json  [runtime/references] [2]
Done processing ./include\LightGBM\tree_learner.h
./include\LightGBM\utils\pipeline_reader.h:15:  <thread> is an unapproved C++11 header.  [build/c++11] [5]
Done processing ./include\LightGBM\utils\pipeline_reader.h
./src\boosting\rf.hpp:18:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\rf.hpp
./src\boosting\dart.hpp:16:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\dart.hpp
Done processing ./src\io\metadata.cpp
Done processing ./src\objective\multiclass_objective.hpp
./src\metric\multiclass_metric.hpp:139:  Is this a non-const reference? If so, make const or use a pointer: std::vector<double>& score  [runtime/references] [2]
./src\metric\multiclass_metric.hpp:159:  Is this a non-const reference? If so, make const or use a pointer: std::vector<double>& score  [runtime/references] [2]
Done processing ./src\metric\multiclass_metric.hpp
./src\boosting\gbdt.h:18:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
./src\boosting\gbdt.h:26:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\boosting\gbdt.h:144:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:180:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:187:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:275:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:283:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:362:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:388:  Is this a non-const reference? If so, make const or use a pointer: Random& cur_rand  [runtime/references] [2]
Done processing ./src\boosting\gbdt.h
Done processing ./include\LightGBM\application.h
./src\io\dataset.cpp:13:  <chrono> is an unapproved C++11 header.  [build/c++11] [5]
./src\io\dataset.cpp:29:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\dataset.cpp:62:  Is this a non-const reference? If so, make const or use a pointer: std::vector<bool>& mark  [runtime/references] [2]
./src\io\dataset.cpp:140:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr<BinMapper>>& bin_mappers  [runtime/references] [2]
./src\io\dataset.cpp:813:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
./src\io\dataset.cpp:842:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
./src\io\dataset.cpp:875:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
./src\io\dataset.cpp:903:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
./src\io\dataset.cpp:950:  Is this a non-const reference? If so, make const or use a pointer: std::vector<T>& dest  [runtime/references] [2]
./src\io\dataset.cpp:958:  Is this a non-const reference? If so, make const or use a pointer: std::vector<T>& dest  [runtime/references] [2]
./src\io\dataset.cpp:966:  Is this a non-const reference? If so, make const or use a pointer: std::vector<T>& dest  [runtime/references] [2]
Done processing ./src\io\dataset.cpp
Done processing ./src\objective\rank_objective.hpp
./src\boosting\boosting.cpp:8:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\boosting.cpp
Done processing ./include\LightGBM\lightgbm_R.h
Done processing ./src\io\parser.hpp
./include\LightGBM\dataset.h:18:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
./include\LightGBM\dataset.h:291:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr<BinMapper>>& bin_mappers  [runtime/references] [2]
./include\LightGBM\dataset.h:409:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr<OrderedBin>>& ordered_bins  [runtime/references] [2]
Done processing ./include\LightGBM\dataset.h
./src\treelearner\gpu_tree_learner.cpp:7:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\gpu_tree_learner.cpp:187:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
Done processing ./src\treelearner\gpu_tree_learner.cpp
Done processing ./include\LightGBM\utils\log.h
./include\LightGBM\utils\random.h:32:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
Done processing ./include\LightGBM\utils\random.h
./src\network\linkers.h:14:  <chrono> is an unapproved C++11 header.  [build/c++11] [5]
./src\network\linkers.h:17:  <thread> is an unapproved C++11 header.  [build/c++11] [5]
./src\network\linkers.h:22:  Found C system header after other header. Should be: linkers.h, c system, c++ system, other.  [build/include_order] [4]
Done processing ./src\network\linkers.h
./src\network\network.cpp:12:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\network\network.cpp
./src\io\config.cpp:157:  Use int16/int64/etc, rather than the C type short  [runtime/int] [4]
Done processing ./src\io\config.cpp
Done processing ./src\objective\xentropy_objective.hpp
Done processing ./src\objective\objective_function.cpp
./src\metric\dcg_calculator.cpp:27:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\metric\dcg_calculator.cpp
Total errors found: 203

@guolinke It seems to me that there are no errors anymore which I can address. Maybe you can? All remaining issues we can mark as // NOLINT or include in --filter option and finally deploy this lint check at our CI test.

@StrikerRUS It looks good to me. Thanks very much for your great work!

@guolinke No problem!
I can help with // NOLINT marking after your contentful PR(s).

716fe4d015c2333f9a261f853ff559ef385add17
Total errors found: 210

Report (Clickable):

Done processing ./include\LightGBM\lightgbm_R.h
./include\LightGBM\dataset_loader.h:55:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::string>& text_data  [runtime/references] [2]
Done processing ./include\LightGBM\dataset_loader.h
Done processing ./include\LightGBM\metric.h
./src\io\bin.cpp:77:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\bin.cpp:197:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
./src\io\bin.cpp:391:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\io\bin.cpp
./include\LightGBM\dataset.h:19:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
./include\LightGBM\dataset.h:292:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr<BinMapper>>& bin_mappers  [runtime/references] [2]
./include\LightGBM\dataset.h:410:  Is this a non-const reference? If so, make const or use a pointer: std::vector<std::unique_ptr<OrderedBin>>& ordered_bins  [runtime/references] [2]
Done processing ./include\LightGBM\dataset.h
./src\boosting\gbdt_prediction.cpp:9:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\gbdt_prediction.cpp
./include\LightGBM\utils\array_args.h:119:  Empty loop bodies should use {} or continue  [whitespace/empty_loop_body] [5]
Done processing ./include\LightGBM\utils\array_args.h
Done processing ./src\metric\rank_metric.hpp
./src\c_api.cpp:25:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
./src\c_api.cpp:385:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\c_api.cpp:876:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\c_api.cpp
Done processing ./src\objective\regression_objective.hpp
./src\boosting\dart.hpp:16:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\dart.hpp
./src\treelearner\feature_histogram.hpp:676:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
Done processing ./src\treelearner\feature_histogram.hpp
Done processing ./src\metric\map_metric.hpp
./src\io\ordered_sparse_bin.hpp:13:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
./src\io\ordered_sparse_bin.hpp:39:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
Done processing ./src\io\ordered_sparse_bin.hpp
Done processing ./include\LightGBM\application.h
Done processing ./src\network\linker_topo.cpp
./include\LightGBM\network.h:169:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:193:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:217:  Is this a non-const reference? If so, make const or use a pointer: T& local  [runtime/references] [2]
./include\LightGBM\network.h:239:  Is this a non-const reference? If so, make const or use a pointer: std::vector<T>& local  [runtime/references] [2]
Done processing ./include\LightGBM\network.h
./src\treelearner\voting_parallel_tree_learner.cpp:11:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\voting_parallel_tree_learner.cpp:138:  Using C-style cast.  Use reinterpret_cast<void*>(...) instead  [readability/casting] [4]
Done processing ./src\treelearner\voting_parallel_tree_learner.cpp
./src\boosting\boosting.cpp:8:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\boosting\boosting.cpp
./include\LightGBM\utils\pipeline_reader.h:15:  <thread> is an unapproved C++11 header.  [build/c++11] [5]
Done processing ./include\LightGBM\utils\pipeline_reader.h
./include\LightGBM\utils\random.h:32:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
Done processing ./include\LightGBM\utils\random.h
Done processing ./include\LightGBM\bin.h
Done processing ./src\treelearner\data_partition.hpp
./src\treelearner\leaf_splits.hpp:22:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
Done processing ./src\treelearner\leaf_splits.hpp
./src\metric\multiclass_metric.hpp:141:  Is this a non-const reference? If so, make const or use a pointer: std::vector<double>& score  [runtime/references] [2]
./src\metric\multiclass_metric.hpp:165:  Is this a non-const reference? If so, make const or use a pointer: std::vector<double>& score  [runtime/references] [2]
Done processing ./src\metric\multiclass_metric.hpp
./src\treelearner\parallel_tree_learner.h:15:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\parallel_tree_learner.h:16:  Include the directory when naming .h files  [build/include_subdir] [4]
Done processing ./src\treelearner\parallel_tree_learner.h
./src\application\application.cpp:19:  <chrono> is an unapproved C++11 header.  [build/c++11] [5]
Done processing ./src\application\application.cpp
./src\treelearner\serial_tree_learner.cpp:5:  Include the directory when naming .h files  [build/include_subdir] [4]
./src\treelearner\serial_tree_learner.cpp:288:  Consider using CHECK_GE instead of CHECK(a >= b)  [readability/check] [2]
./src\treelearner\serial_tree_learner.cpp:883:  Consider using CHECK_GT instead of CHECK(a > b)  [readability/check] [2]
Done processing ./src\treelearner\serial_tree_learner.cpp
./src\boosting\gbdt.h:18:  <mutex> is an unapproved C++11 header.  [build/c++11] [5]
./src\boosting\gbdt.h:26:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./src\boosting\gbdt.h:144:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:180:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:187:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:275:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:283:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:362:  "virtual" is redundant since function is already declared as "override"  [readability/inheritance] [4]
./src\boosting\gbdt.h:388:  Is this a non-const reference? If so, make const or use a pointer: Random& cur_rand  [runtime/references] [2]