2
0
mirror of https://github.com/boostorg/json.git synced 2026-01-19 04:12:14 +00:00

try_at functions

This commit is contained in:
Dmitry Arkhipov
2024-04-07 13:00:36 +03:00
parent 6bb79c4a25
commit 9b823e095b
15 changed files with 388 additions and 54 deletions

View File

@@ -1049,6 +1049,37 @@ public:
BOOST_TEST_THROWS_WITH_LOCATION( cs1.at(cs2.size()) );
}
// try_at(size_type)
{
s1 = t.v1;
s2 = t.v2;
BOOST_TEST( *s1.try_at(1) == 'b' );
*s1.try_at(1) = '*';
BOOST_TEST( *s1.try_at(1) == '*' );
*s1.try_at(1) = 'b';
BOOST_TEST( *s1.try_at(1) == 'b' );
BOOST_TEST( *s2.try_at(1) == 'B' );
*s2.try_at(1) = '*';
BOOST_TEST( *s2.try_at(1) == '*' );
*s2.try_at(1) = 'B';
BOOST_TEST( *s2.try_at(1) == 'B' );
system::error_code const ec = s1.try_at(s2.size()).error();
BOOST_TEST( ec == error::out_of_range );
BOOST_TEST( ec.has_location() );
}
// try_at(size_type) const
{
BOOST_TEST( *cs1.try_at(1) == 'b' );
BOOST_TEST( *cs2.try_at(1) == 'B' );
system::error_code const ec = s1.try_at(s2.size()).error();
BOOST_TEST( ec == error::out_of_range );
BOOST_TEST( ec.has_location() );
}
// operator[&](size_type)
{
BOOST_TEST(s1[1] == 'b');