netheril96 / StaticJSON

Fast, direct and static typed parsing of JSON with C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

compile things

gggin opened this issue · comments

commented

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.

commented

Thanks!