Error when building under Ubuntu 16.04
Created by: char16t
Environment:
- Ubuntu 16.04
- libboost-all-dev (version 1.58.0)
- libgtest-dev (version 1.7.0-4)
Proof of concepts:
cmake .
cmake --build .
Output:
user ~/sql/handystats $ cmake --build .
[ 3%] Building CXX object CMakeFiles/handystats.dir/src/json_dump.cpp.o
In file included from /home/user/sql/handystats/include/handystats/rapidjson/prettywriter.h:4:0,
from /home/user/sql/handystats/include/handystats/json/gauge_json_writer.hpp:25,
from /home/user/sql/handystats/include/handystats/json_dump.hpp:23,
from /home/user/sql/handystats/src/json_dump.cpp:18:
/home/user/sql/handystats/include/handystats/rapidjson/writer.h: In member function 'void rapidjson::Writer<Output
Stream, SourceEncoding, TargetEncoding, Allocator>::WriteDouble(double)':
/home/user/sql/handystats/include/handystats/rapidjson/writer.h:167:14: error: there are no arguments to 'isnan' t
hat depend on a template parameter, so a declaration of 'isnan' must be available [-fpermissive]
if (isnan(d)) {
^
/home/user/sql/handystats/include/handystats/rapidjson/writer.h:167:14: note: (if you use '-fpermissive', G++ will
accept your code, but allowing the use of an undeclared name is deprecated)
/home/user/sql/handystats/include/handystats/rapidjson/writer.h: In instantiation of 'void rapidjson::Writer<Outpu
tStream, SourceEncoding, TargetEncoding, Allocator>::WriteDouble(double) [with OutputStream = rapidjson::GenericSt
ringBuffer<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<> >; SourceEncoding = rapidjson::UTF8<>; TargetEncodi
ng = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]':
/home/user/sql/handystats/include/handystats/rapidjson/prettywriter.h:49:80: required from 'rapidjson::PrettyWri
ter<OutputStream, SourceEncoding, TargetEncoding, Allocator>& rapidjson::PrettyWriter<OutputStream, SourceEncoding
, TargetEncoding, Allocator>::Double(double) [with OutputStream = rapidjson::GenericStringBuffer<rapidjson::UTF8<>
, rapidjson::MemoryPoolAllocator<> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allo
cator = rapidjson::MemoryPoolAllocator<>]'
/home/user/sql/handystats/include/handystats/rapidjson/document.h:552:13: required from 'const rapidjson::Generi
cValue<Encoding, Allocator>& rapidjson::GenericValue<Encoding, Allocator>::Accept(Handler&) const [with Handler =
rapidjson::PrettyWriter<rapidjson::GenericStringBuffer<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<> > >; En
coding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]'
/home/user/sql/handystats/src/json_dump.cpp:31:20: required from here
/home/user/sql/handystats/include/handystats/rapidjson/writer.h:167:12: error: 'isnan' was not declared in this sc
ope
if (isnan(d)) {
^
/home/user/sql/handystats/include/handystats/rapidjson/writer.h:167:12: note: suggested alternative:
In file included from /home/user/sql/handystats/include/handystats/rapidjson/writer.h:9:0,
from /home/user/sql/handystats/include/handystats/rapidjson/prettywriter.h:4,
from /home/user/sql/handystats/include/handystats/json/gauge_json_writer.hpp:25,
from /home/user/sql/handystats/include/handystats/json_dump.hpp:23,
from /home/user/sql/handystats/src/json_dump.cpp:18:
/usr/include/c++/5/cmath:641:5: note: 'std::isnan'
isnan(_Tp __x)
^
CMakeFiles/handystats.dir/build.make:86: recipe for target 'CMakeFiles/handystats.dir/src/json_dump.cpp.o' failed
make[2]: *** [CMakeFiles/handystats.dir/src/json_dump.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/handystats.dir/all' failed
make[1]: *** [CMakeFiles/handystats.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2