mirror of
https://github.com/nlohmann/json
synced 2024-11-10 06:20:06 +00:00
Merge branch 'develop' into feature/sax2
This commit is contained in:
commit
86991d5204
1
.gitignore
vendored
1
.gitignore
vendored
@ -10,6 +10,7 @@ fuzz-testing
|
||||
|
||||
build
|
||||
build_coverage
|
||||
clang_analyze_build
|
||||
|
||||
doc/xml
|
||||
doc/html
|
||||
|
6
Makefile
6
Makefile
@ -259,6 +259,12 @@ fuzzing-stop:
|
||||
cppcheck:
|
||||
cppcheck --enable=warning --inconclusive --force --std=c++11 $(AMALGAMATED_FILE) --error-exitcode=1
|
||||
|
||||
# compile and check with Clang Static Analyzer
|
||||
clang_analyze:
|
||||
rm -fr clang_analyze_build
|
||||
mkdir clang_analyze_build
|
||||
cd clang_analyze_build ; CCC_CXX=/Users/niels/Documents/projects/llvm-clang/local/bin/clang++ /Users/niels/Documents/projects/llvm-clang/local/bin/scan-build cmake ..
|
||||
/Users/niels/Documents/projects/llvm-clang/local/bin/scan-build -enable-checker alpha.core.DynamicTypeChecker,alpha.core.PointerArithm,alpha.core.PointerSub,alpha.cplusplus.DeleteWithNonVirtualDtor,alpha.cplusplus.IteratorRange,alpha.cplusplus.MisusedMovedObject,alpha.security.ArrayBoundV2,alpha.core.Conversion --use-c++=/Users/niels/Documents/projects/llvm-clang/local/bin/clang++ --view -analyze-headers -o clang_analyze_build/report.html make -j10 -C clang_analyze_build
|
||||
|
||||
##########################################################################
|
||||
# maintainer targets
|
||||
|
@ -5180,7 +5180,7 @@ class basic_json
|
||||
|
||||
// passed iterators must belong to objects
|
||||
if (JSON_UNLIKELY(not first.m_object->is_object()
|
||||
or not first.m_object->is_object()))
|
||||
or not last.m_object->is_object()))
|
||||
{
|
||||
JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects"));
|
||||
}
|
||||
|
@ -15091,7 +15091,7 @@ class basic_json
|
||||
|
||||
// passed iterators must belong to objects
|
||||
if (JSON_UNLIKELY(not first.m_object->is_object()
|
||||
or not first.m_object->is_object()))
|
||||
or not last.m_object->is_object()))
|
||||
{
|
||||
JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects"));
|
||||
}
|
||||
|
@ -152,6 +152,10 @@ TEST_CASE("README", "[hide]")
|
||||
j.push_back(1);
|
||||
j.push_back(true);
|
||||
|
||||
// comparison
|
||||
bool x = (j == "[\"foo\", 1, true]"_json); // true
|
||||
CHECK(x == true);
|
||||
|
||||
// iterate the array
|
||||
for (json::iterator it = j.begin(); it != j.end(); ++it)
|
||||
{
|
||||
@ -168,6 +172,7 @@ TEST_CASE("README", "[hide]")
|
||||
const std::string tmp = j[0];
|
||||
j[1] = 42;
|
||||
bool foo = j.at(2);
|
||||
CHECK(foo == true);
|
||||
|
||||
// other stuff
|
||||
j.size(); // 3 entries
|
||||
@ -175,9 +180,6 @@ TEST_CASE("README", "[hide]")
|
||||
j.type(); // json::value_t::array
|
||||
j.clear(); // the array is empty again
|
||||
|
||||
// comparison
|
||||
bool x = (j == "[\"foo\", 1, true]"_json); // true
|
||||
|
||||
// create an object
|
||||
json o;
|
||||
o["foo"] = 23;
|
||||
@ -257,17 +259,21 @@ TEST_CASE("README", "[hide]")
|
||||
bool b1 = true;
|
||||
json jb = b1;
|
||||
bool b2 = jb;
|
||||
CHECK(b2 == true);
|
||||
|
||||
// numbers
|
||||
int i = 42;
|
||||
json jn = i;
|
||||
double f = jn;
|
||||
CHECK(f == 42);
|
||||
|
||||
// etc.
|
||||
|
||||
std::string vs = js.get<std::string>();
|
||||
bool vb = jb.get<bool>();
|
||||
CHECK(vb == true);
|
||||
int vi = jn.get<int>();
|
||||
CHECK(vi == 42);
|
||||
|
||||
// etc.
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user