Improve Json::Value special members (fixes RIPD-215):

* Add move special members
* Fix Json::Value::swap
This commit is contained in:
Howard Hinnant
2014-04-18 13:39:40 -04:00
committed by Vinnie Falco
parent 73c5a867c6
commit b5348980e2
3 changed files with 87 additions and 1 deletions

View File

@@ -18,6 +18,7 @@
//==============================================================================
#include "../../../beast/beast/unit_test/suite.h"
#include "../../../beast/beast/utility/type_name.h"
namespace ripple {
@@ -37,9 +38,57 @@ public:
pass ();
}
void
test_copy ()
{
Json::Value v1{2.5};
expect (v1.isDouble ());
expect (v1.asDouble () == 2.5);
Json::Value v2 = v1;
expect (v1.isDouble ());
expect (v1.asDouble () == 2.5);
expect (v2.isDouble ());
expect (v2.asDouble () == 2.5);
expect (v1 == v2);
v1 = v2;
expect (v1.isDouble ());
expect (v1.asDouble () == 2.5);
expect (v2.isDouble ());
expect (v2.asDouble () == 2.5);
expect (v1 == v2);
pass ();
}
void
test_move ()
{
Json::Value v1{2.5};
expect (v1.isDouble ());
expect (v1.asDouble () == 2.5);
Json::Value v2 = std::move(v1);
expect (v1.isNull ());
expect (v2.isDouble ());
expect (v2.asDouble () == 2.5);
expect (v1 != v2);
v1 = std::move(v2);
expect (v1.isDouble ());
expect (v1.asDouble () == 2.5);
expect (v2.isNull ());
expect (v1 != v2);
pass ();
}
void run ()
{
testBadJson ();
test_copy ();
test_move ();
}
};