Merge branch 'develop' of https://github.com/nlohmann/json into develop
This commit is contained in:
commit
be4fba7baf
11 changed files with 393 additions and 175 deletions
|
@ -66,6 +66,22 @@ set_target_properties(catch_main PROPERTIES
|
|||
)
|
||||
target_include_directories(catch_main PRIVATE "thirdparty/catch")
|
||||
|
||||
# https://stackoverflow.com/questions/2368811/how-to-set-warning-level-in-cmake
|
||||
if(MSVC)
|
||||
# Force to always compile with W4
|
||||
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
||||
endif()
|
||||
|
||||
# Disable warning C4389: '==': signed/unsigned mismatch
|
||||
# Disable warning C4309: 'static_cast': truncation of constant value
|
||||
# Disable warning C4566: character represented by universal-character-name '\uFF01' cannot be represented in the current code page (1252)
|
||||
# Disable warning C4996: 'nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>::operator <<': was declared deprecated
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4389 /wd4309 /wd4566 /wd4996")
|
||||
endif()
|
||||
|
||||
#############################################################################
|
||||
# one executable for each unit test file
|
||||
#############################################################################
|
||||
|
|
|
@ -215,7 +215,7 @@ TEST_CASE("parser class")
|
|||
std::string s = "\"1\"";
|
||||
s[1] = '\0';
|
||||
CHECK_THROWS_AS(json::parse(s.begin(), s.end()), json::parse_error&);
|
||||
CHECK_THROWS_WITH(json::parse(s.begin(), s.end()), "[json.exception.parse_error.101] parse error at 2: syntax error - invalid string: control character must be escaped; last read: '\"'");
|
||||
CHECK_THROWS_WITH(json::parse(s.begin(), s.end()), "[json.exception.parse_error.101] parse error at 2: syntax error - invalid string: control character must be escaped; last read: '\"<U+0000>'");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -247,7 +247,7 @@ TEST_CASE("constructors")
|
|||
|
||||
SECTION("std::pair")
|
||||
{
|
||||
std::pair<float, std::string> p{1.0, "string"};
|
||||
std::pair<float, std::string> p{1.0f, "string"};
|
||||
json j(p);
|
||||
|
||||
CHECK(j.type() == json::value_t::array);
|
||||
|
|
|
@ -38,6 +38,11 @@ using nlohmann::json;
|
|||
#include <unordered_set>
|
||||
#include <iostream>
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning (push)
|
||||
#pragma warning (disable : 4189) // local variable is initialized but not referenced
|
||||
#endif
|
||||
|
||||
TEST_CASE("README", "[hide]")
|
||||
{
|
||||
{
|
||||
|
@ -298,3 +303,7 @@ TEST_CASE("README", "[hide]")
|
|||
std::cout.rdbuf(old_cout_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning (pop)
|
||||
#endif
|
||||
|
|
|
@ -1233,4 +1233,24 @@ TEST_CASE("regression tests")
|
|||
"[json.exception.type_error.302] type must be array, but is null");
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("issue #367 - Behavior of operator>> should more closely resemble that of built-in overloads.")
|
||||
{
|
||||
SECTION("example 1")
|
||||
{
|
||||
std::istringstream i1_2_3( "{\"first\": \"one\" }{\"second\": \"two\"}3" );
|
||||
json j1, j2, j3;
|
||||
i1_2_3 >> j1;
|
||||
i1_2_3 >> j2;
|
||||
i1_2_3 >> j3;
|
||||
|
||||
std::map<std::string,std::string> m1 = j1;
|
||||
std::map<std::string,std::string> m2 = j2;
|
||||
int i3 = j3;
|
||||
|
||||
CHECK( m1 == ( std::map<std::string,std::string> {{ "first", "one" }} ));
|
||||
CHECK( m2 == ( std::map<std::string,std::string> {{ "second", "two" }} ));
|
||||
CHECK( i3 == 3 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -201,7 +201,7 @@ void from_json(const BasicJsonType& j, country& c)
|
|||
{
|
||||
{u8"中华人民共和国", country::china},
|
||||
{"France", country::france},
|
||||
{"Российская Федерация", country::russia}
|
||||
{u8"Российская Федерация", country::russia}
|
||||
};
|
||||
|
||||
const auto it = m.find(str);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue