@@ -58,7 +58,7 @@ namespace io{
58
58
struct base : std::exception{
59
59
virtual void format_error_message ()const = 0;
60
60
61
- const char *what ()const throw() {
61
+ const char *what ()const noexcept override {
62
62
format_error_message ();
63
63
return error_message_buffer;
64
64
}
@@ -113,7 +113,7 @@ namespace io{
113
113
base,
114
114
with_file_name,
115
115
with_errno{
116
- void format_error_message ()const {
116
+ void format_error_message ()const override {
117
117
if (errno_value != 0 )
118
118
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
119
119
" Can not open file \" %s\" because \" %s\" ."
@@ -129,7 +129,7 @@ namespace io{
129
129
base,
130
130
with_file_name,
131
131
with_file_line{
132
- void format_error_message ()const {
132
+ void format_error_message ()const override {
133
133
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
134
134
" Line number %d in file \" %s\" exceeds the maximum length of 2^24-1."
135
135
, file_line, file_name);
@@ -443,7 +443,7 @@ namespace io{
443
443
444
444
char *next_line (){
445
445
if (data_begin == data_end)
446
- return 0 ;
446
+ return nullptr ;
447
447
448
448
++file_line;
449
449
@@ -542,9 +542,9 @@ namespace io{
542
542
base,
543
543
with_file_name,
544
544
with_column_name{
545
- void format_error_message ()const {
545
+ void format_error_message ()const override {
546
546
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
547
- " Extra column \ " %s\ " in header of file \ " %s\" . "
547
+ R"( Extra column "%s" in header of file "%s". ) "
548
548
, column_name, file_name);
549
549
}
550
550
};
@@ -553,9 +553,9 @@ namespace io{
553
553
base,
554
554
with_file_name,
555
555
with_column_name{
556
- void format_error_message ()const {
556
+ void format_error_message ()const override {
557
557
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
558
- " Missing column \ " %s\ " in header of file \ " %s\" . "
558
+ R"( Missing column "%s" in header of file "%s". ) "
559
559
, column_name, file_name);
560
560
}
561
561
};
@@ -564,17 +564,17 @@ namespace io{
564
564
base,
565
565
with_file_name,
566
566
with_column_name{
567
- void format_error_message ()const {
567
+ void format_error_message ()const override {
568
568
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
569
- " Duplicated column \ " %s\ " in header of file \ " %s\" . "
569
+ R"( Duplicated column "%s" in header of file "%s". ) "
570
570
, column_name, file_name);
571
571
}
572
572
};
573
573
574
574
struct header_missing :
575
575
base,
576
576
with_file_name{
577
- void format_error_message ()const {
577
+ void format_error_message ()const override {
578
578
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
579
579
" Header missing in file \" %s\" ."
580
580
, file_name);
@@ -585,7 +585,7 @@ namespace io{
585
585
base,
586
586
with_file_name,
587
587
with_file_line{
588
- void format_error_message ()const {
588
+ void format_error_message ()const override {
589
589
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
590
590
" Too few columns in line %d in file \" %s\" ."
591
591
, file_line, file_name);
@@ -596,7 +596,7 @@ namespace io{
596
596
base,
597
597
with_file_name,
598
598
with_file_line{
599
- void format_error_message ()const {
599
+ void format_error_message ()const override {
600
600
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
601
601
" Too many columns in line %d in file \" %s\" ."
602
602
, file_line, file_name);
@@ -607,7 +607,7 @@ namespace io{
607
607
base,
608
608
with_file_name,
609
609
with_file_line{
610
- void format_error_message ()const {
610
+ void format_error_message ()const override {
611
611
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
612
612
" Escaped string was not closed in line %d in file \" %s\" ."
613
613
, file_line, file_name);
@@ -620,9 +620,9 @@ namespace io{
620
620
with_file_line,
621
621
with_column_name,
622
622
with_column_content{
623
- void format_error_message ()const {
623
+ void format_error_message ()const override {
624
624
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
625
- " The integer \ " %s\ " must be positive or 0 in column \ " %s\ " in file \ " %s\ " in line \ " %d\" . "
625
+ R"( The integer "%s" must be positive or 0 in column "%s" in file "%s" in line "%d". ) "
626
626
, column_content, column_name, file_name, file_line);
627
627
}
628
628
};
@@ -633,9 +633,9 @@ namespace io{
633
633
with_file_line,
634
634
with_column_name,
635
635
with_column_content{
636
- void format_error_message ()const {
636
+ void format_error_message ()const override {
637
637
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
638
- " The integer \ " %s\ " contains an invalid digit in column \ " %s\ " in file \ " %s\ " in line \ " %d\" . "
638
+ R"( The integer "%s" contains an invalid digit in column "%s" in file "%s" in line "%d". ) "
639
639
, column_content, column_name, file_name, file_line);
640
640
}
641
641
};
@@ -646,9 +646,9 @@ namespace io{
646
646
with_file_line,
647
647
with_column_name,
648
648
with_column_content{
649
- void format_error_message ()const {
649
+ void format_error_message ()const override {
650
650
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
651
- " The integer \ " %s\ " overflows in column \ " %s\ " in file \ " %s\ " in line \ " %d\" . "
651
+ R"( The integer "%s" overflows in column "%s" in file "%s" in line "%d". ) "
652
652
, column_content, column_name, file_name, file_line);
653
653
}
654
654
};
@@ -659,9 +659,9 @@ namespace io{
659
659
with_file_line,
660
660
with_column_name,
661
661
with_column_content{
662
- void format_error_message ()const {
662
+ void format_error_message ()const override {
663
663
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
664
- " The integer \ " %s\ " underflows in column \ " %s\ " in file \ " %s\ " in line \ " %d\" . "
664
+ R"( The integer "%s" underflows in column "%s" in file "%s" in line "%d". ) "
665
665
, column_content, column_name, file_name, file_line);
666
666
}
667
667
};
@@ -672,15 +672,15 @@ namespace io{
672
672
with_file_line,
673
673
with_column_name,
674
674
with_column_content{
675
- void format_error_message ()const {
675
+ void format_error_message ()const override {
676
676
std::snprintf (error_message_buffer, sizeof (error_message_buffer),
677
- " The content \ " %s\ " of column \ " %s\ " in file \ " %s\ " in line \ " %d\ " is not a single character."
677
+ R"( The content "%s" of column "%s" in file "%s" in line "%d" is not a single character.) "
678
678
, column_content, column_name, file_name, file_line);
679
679
}
680
680
};
681
681
}
682
682
683
- typedef unsigned ignore_column ;
683
+ using ignore_column = unsigned int ;
684
684
static const ignore_column ignore_no_column = 0 ;
685
685
static const ignore_column ignore_extra_column = 1 ;
686
686
static const ignore_column ignore_missing_column = 2 ;
@@ -865,17 +865,17 @@ namespace io{
865
865
char **sorted_col,
866
866
const std::vector<int >&col_order
867
867
){
868
- for (std:: size_t i= 0 ; i< col_order. size (); ++i) {
868
+ for ( int i : col_order) {
869
869
if (line == nullptr )
870
870
throw ::io::error::too_few_columns ();
871
871
char *col_begin, *col_end;
872
872
chop_next_column<quote_policy>(line, col_begin, col_end);
873
873
874
- if (col_order[i] != -1 ){
874
+ if (i != -1 ) {
875
875
trim_policy::trim (col_begin, col_end);
876
876
quote_policy::unescape (col_begin, col_end);
877
877
878
- sorted_col[col_order[i] ] = col_begin;
878
+ sorted_col[i ] = col_begin;
879
879
}
880
880
}
881
881
if (line != nullptr )
0 commit comments