compile things
gggin opened this issue · comments
before problem: Thank you for do great thing!
First:
(why do this?)
I must use:
#define AUTOJSONCXX_HAS_MODERN_TYPES 1
to support std::unique_ptrrapidjson::Document
Second:
in error.hpp line 26
RAPIDJSON_NAMESPACE_BEGIN macro is defined by rapidjson why you define this?
Third:
in vs2013 update 5:
in utility.hpp line 198
inline bool string_equal(const char* str1, std::size_t len1, const char* str2, std::size_t len2)
{
return len1 == len2 && std::equal(str1, str1 + len1, str2);
}
this warning is not good to see:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2798): warning C4996: 'std::_Equal1': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xutility(2783) : 参见“std::_Equal1”的声明
1> H:\test\test\include\autojsoncxx/utility.hpp(198): 参见对正在编译的函数 模板 实例化“bool std::equal<const char*,const char*>(_InIt1,_InIt1,_InIt2)”的引用
1> with
1> [
1> _InIt1=const char *
1> , _InIt2=const char *
1> ]
#define AUTOJSONCXX_HAS_MODERN_TYPES 1
Because I don't know how to detect the compiler's support for C++11. Many compilers still widely in use have only partial support.
RAPIDJSON_NAMESPACE_BEGIN macro is defined by rapidjson why you define this?
I don't really remember. But the particular commit of rapidjson
linked in my repo requires this define or won't compile.
this warning is not good to see:
_SCL_SECURE_WARNINGS
is a warning that only Microsoft thinks is useful, while it is actually pointless.
Thanks!