rapidjson
rapidjson copied to clipboard
base class ‘struct rapidjson::internal::BoolType<true>’ has a non-virtual destructor
Hi,
i have the following problem when compiling.
#make
[ 1%] Building CXX object example/CMakeFiles/archivertest.dir/archiver/archiver.cpp.o
In file included from /work/rapidjson/include/rapidjson/reader.h:20:0,
from /work/rapidjson/include/rapidjson/document.h:20,
from /work/rapidjson/example/archiver/archiver.cpp:4:
/work/rapidjson/include/rapidjson/allocators.h: In instantiation of ‘struct rapidjson::internal::IsRefCounted<rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, void>’:
/work/rapidjson/include/rapidjson/document.h:883:65: required from ‘rapidjson::GenericValue<Encoding, Allocator>::~GenericValue() [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>]’
/work/rapidjson/include/rapidjson/document.h:2511:102: required from ‘rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::GenericDocument(Allocator*, std::size_t, StackAllocator*) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>; StackAllocator = rapidjson::CrtAllocator; std::size_t = long unsigned int]’
/work/rapidjson/example/archiver/archiver.cpp:32:21: required from here
/work/rapidjson/include/rapidjson/allocators.h:428:12: error: base class ‘struct rapidjson::internal::BoolType<true>’ has a non-virtual destructor [-Werror=effc++]
struct IsRefCounted<T, typename internal::EnableIfCond<T::kRefCounted>::Type> :
^
cc1plus: all warnings being treated as errors
make[2]: *** [example/CMakeFiles/archivertest.dir/archiver/archiver.cpp.o] Error 1
make[1]: *** [example/CMakeFiles/archivertest.dir/all] Error 2
make: *** [all] Error 2
Thanks.
Hi! you can try adding #ifdef GNUC RAPIDJSON_DIAG_OFF(effc++) #endif to your allocators.h file, it worked for me :)
add code add_definitions(-w) at CMakeLists.txt