vincentlaucsb / csv-parser

A high-performance, fully-featured CSV parser and serializer for modern C++.
MIT License
864 stars 144 forks source link

Build errors when compiling Single Header with conversion error #198

Closed Montage-eloise closed 2 years ago

Montage-eloise commented 2 years ago

There are many compiling error in single_inlclude_test .

[proc] Executing command: /usr/local/bin/cmake --build /home/tian/work/csv-parser/build --config Debug --target single_include_test -j 10 -- [build] Consolidate compiler generated dependencies of target single_include_test [build] [ 66%] Building CXX object single_include_test/CMakeFiles/single_include_test.dir/file2.cpp.o [build] [ 66%] Building CXX object single_include_test/CMakeFiles/single_include_test.dir/file1.cpp.o [build] In file included from /home/tian/work/csv-parser/single_include_test/my_header.hpp:2, [build] from /home/tian/work/csv-parser/single_include_test/file1.cpp:1: [build] /home/tian/work/csv-parser/single_include_test/csv.hpp: In member function ‘bool csv::CSVField::try_parse_hex(int&)’: [build] /home/tian/work/csv-parser/single_include_test/csv.hpp:7777:38: error: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘double’ may change value [-Werror=conversion] [build] 7777 | value += digit pow(16, base16_exponent); [build] | ^~~~~~~ [build] /home/tian/work/csv-parser/single_include_test/csv.hpp:7777:53: error: conversion from ‘long long unsigned int’ to ‘double’ may change value [-Werror=conversion] [build] 7777 | value += digit pow(16, base16_exponent); [build] | ^ [build] /home/tian/work/csv-parser/single_include_test/csv.hpp:7777:53: error: conversion from ‘double’ to ‘long long unsigned int’ may change value [-Werror=float-conversion] [build] /home/tian/work/csv-parser/single_include_test/csv.hpp:7781:23: error: conversion from ‘long long unsigned int’ to ‘int’ may change value [-Werror=conversion] [build] 7781 | parsedValue = value; [build] | ^~~~~ [build] In file included from /home/tian/work/csv-parser/single_include_test/my_header.hpp:2, [build] from /home/tian/work/csv-parser/single_include_test/file2.cpp:1: [build] /home/tian/work/csv-parser/single_include_test/csv.hpp: In member function ‘bool csv::CSVField::try_parse_hex(int&)’: [build] /home/tian/work/csv-parser/single_include_test/csv.hpp:7777:38: error: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘double’ may change value [-Werror=conversion] [build] 7777 | value += digit pow(16, base16_exponent); [build] | ^~~~~~~ [build] /home/tian/work/csv-parser/single_include_test/csv.hpp:7777:53: error: conversion from ‘long long unsigned int’ to ‘double’ may change value [-Werror=conversion] [build] 7777 | value += digit pow(16, base16_exponent); [build] | ^ [build] /home/tian/work/csv-parser/single_include_test/csv.hpp:7777:53: error: conversion from ‘double’ to ‘long long unsigned int’ may change value [-Werror=float-conversion] [build] /home/tian/work/csv-parser/single_include_test/csv.hpp:7781:23: error: conversion from ‘long long unsigned int’ to ‘int’ may change value [-Werror=conversion] [build] 7781 | parsedValue = value; [build] | ^~~~~ [build] cc1plus: all warnings being treated as errors