ben-strasser / fast-cpp-csv-parser

fast-cpp-csv-parser
BSD 3-Clause "New" or "Revised" License
2.12k stars 439 forks source link

Unused parameter warnings #5

Closed danielgeier closed 8 years ago

danielgeier commented 9 years ago

I get a lot of warnings for unused parameters. Is there any way to fix or suppress them?

This is with gcc (i686-posix-dwarf-rev1, Built by MinGW-W64 project) 4.9.2.

I use it like this

CSVReader<2, trim_chars<>, no_quote_escape<'\t'>> reader(filename.toStdString());
reader.read_header(ignore_no_column, "time", "painlevel");

And the warnings look like this

In file included from ..\PainDetection\csvreader.h:7:0,
                 from ..\PainDetection\controller.cpp:2:
..\PainDetection\csv.h:519:51: warning: unused parameter 'line' [-Wunused-parameter]
                 static bool is_comment(const char*line){
                                                   ^
..\PainDetection\csv.h: In instantiation of 'static constexpr bool io::trim_chars<trim_char_list>::is_trim_char(char) [with char ...trim_char_list = {}]':
..\PainDetection\csv.h:509:73:   required from 'static void io::trim_chars<trim_char_list>::trim(char*&, char*&) [with char ...trim_char_list = {}]'
..\PainDetection\csv.h:707:69:   required from 'void io::detail::parse_header_line(char*, std::vector<int>&, const string*, io::ignore_column) [with unsigned int column_count = 2u; trim_policy = io::trim_chars<>; quote_policy = io::no_quote_escape<'\011'>; std::string = std::basic_string<char>; io::ignore_column = unsigned int]'
..\PainDetection\csv.h:964:86:   required from 'void io::CSVReader<column_count, trim_policy, quote_policy, overflow_policy, comment_policy>::read_header(io::ignore_column, ColNames ...) [with ColNames = {const char*, const char*}; unsigned int column_count = 2u; trim_policy = io::trim_chars<>; quote_policy = io::no_quote_escape<'\011'>; overflow_policy = io::throw_on_overflow; comment_policy = io::no_comment; io::ignore_column = unsigned int]'
..\PainDetection\controller.cpp:20:61:   required from here
..\PainDetection\csv.h:498:57: warning: unused parameter 'c' [-Wunused-parameter]
                 constexpr static bool is_trim_char(char c){
                                                         ^
..\PainDetection\csv.h: In instantiation of 'static void io::no_quote_escape<sep>::unescape(char*&, char*&) [with char sep = '\011']':
..\PainDetection\csv.h:708:74:   required from 'void io::detail::parse_header_line(char*, std::vector<int>&, const string*, io::ignore_column) [with unsigned int column_count = 2u; trim_policy = io::trim_chars<>; quote_policy = io::no_quote_escape<'\011'>; std::string = std::basic_string<char>; io::ignore_column = unsigned int]'
..\PainDetection\csv.h:964:86:   required from 'void io::CSVReader<column_count, trim_policy, quote_policy, overflow_policy, comment_policy>::read_header(io::ignore_column, ColNames ...) [with ColNames = {const char*, const char*}; unsigned int column_count = 2u; trim_policy = io::trim_chars<>; quote_policy = io::no_quote_escape<'\011'>; overflow_policy = io::throw_on_overflow; comment_policy = io::no_comment; io::ignore_column = unsigned int]'
..\PainDetection\controller.cpp:20:61:   required from here
..\PainDetection\csv.h:571:44: warning: unused parameter 'col_begin' [-Wunused-parameter]
                 static void unescape(char*&col_begin, char*&col_end){
                                            ^
..\PainDetection\csv.h:571:61: warning: unused parameter 'col_end' [-Wunused-parameter]
                 static void unescape(char*&col_begin, char*&col_end){
                                                             ^
..\PainDetection\csv.h: In instantiation of 'void io::CSVReader<column_count, trim_policy, quote_policy, overflow_policy, comment_policy>::parse_helper(std::size_t) [with unsigned int column_count = 2u; trim_policy = io::trim_chars<>; quote_policy = io::no_quote_escape<'\011'>; overflow_policy = io::throw_on_overflow; comment_policy = io::no_comment; std::size_t = unsigned int]':
..\PainDetection\csv.h:1029:50:   recursively required from 'void io::CSVReader<column_count, trim_policy, quote_policy, overflow_policy, comment_policy>::parse_helper(std::size_t, T&, ColType& ...) [with T = int; ColType = {}; unsigned int column_count = 2u; trim_policy = io::trim_chars<>; quote_policy = io::no_quote_escape<'\011'>; overflow_policy = io::throw_on_overflow; comment_policy = io::no_comment; std::size_t = unsigned int]'
..\PainDetection\csv.h:1029:50:   required from 'void io::CSVReader<column_count, trim_policy, quote_policy, overflow_policy, comment_policy>::parse_helper(std::size_t, T&, ColType& ...) [with T = double; ColType = {int}; unsigned int column_count = 2u; trim_policy = io::trim_chars<>; quote_policy = io::no_quote_escape<'\011'>; overflow_policy = io::throw_on_overflow; comment_policy = io::no_comment; std::size_t = unsigned int]'
..\PainDetection\csv.h:1053:64:   required from 'bool io::CSVReader<column_count, trim_policy, quote_policy, overflow_policy, comment_policy>::read_row(ColType& ...) [with ColType = {double, int}; unsigned int column_count = 2u; trim_policy = io::trim_chars<>; quote_policy = io::no_quote_escape<'\011'>; overflow_policy = io::throw_on_overflow; comment_policy = io::no_comment]'
..\PainDetection\controller.cpp:24:39:   required from here
..\PainDetection\csv.h:1012:47: warning: unused parameter 'r' [-Wunused-parameter]
                 void parse_helper(std::size_t r){}
                                               ^
yhager commented 8 years ago

Until this is fixed, I have added some #pragmas around including "csv.h" (clang), might be helpful for you:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-parameter"
#include "fast-cpp-csv-parser/csv.h"
#pragma clang diagnostic pop

Should be very similar to adapt to gcc.

ben-strasser commented 8 years ago

Removed the parameter names from functions with an empty body.

IMHO a compiler should not give a warning in this case.