2
0
mirror of https://github.com/boostorg/json.git synced 2026-02-01 20:42:17 +00:00

try_at_pointer and try_set_at_pointer

This commit is contained in:
Dmitry Arkhipov
2024-04-05 17:18:23 +03:00
parent 274a0f5537
commit 4ebd252a13
4 changed files with 166 additions and 12 deletions

View File

@@ -346,6 +346,22 @@ public:
BOOST_TEST( hasLocation(ec) );
}
void
testTry()
{
value jv = testValue();
BOOST_TEST( &jv.try_at_pointer("/foo").value() == &jv.at("foo") );
BOOST_TEST_THROWS_WITH_LOCATION( jv.try_at_pointer("foo").value() );
value const& cjv = jv;
BOOST_TEST( &cjv.try_at_pointer("/foo").value() == &cjv.at("foo") );
BOOST_TEST_THROWS_WITH_LOCATION( cjv.try_at_pointer("foo").value() );
auto result = jv.try_set_at_pointer("", array());
BOOST_TEST(( jv == array() ));
BOOST_TEST( &*result == &jv );
}
void
run()
{
@@ -359,6 +375,7 @@ public:
testSet();
testSetNonThrowing<system::error_code>();
testSetNonThrowing<std::error_code>();
testTry();
}
};