Skip to content

Commit

Permalink
Move constructor support for Writer
Browse files Browse the repository at this point in the history
This also requires turning off the c++98 compatibility checks when building
with clang.
  • Loading branch information
CreoValis committed Sep 19, 2016
1 parent 5268211 commit 2b73169
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions include/rapidjson/writer.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF(padded)
RAPIDJSON_DIAG_OFF(unreachable-code)
RAPIDJSON_DIAG_OFF(c++98-compat)
#endif

RAPIDJSON_NAMESPACE_BEGIN
Expand Down Expand Up @@ -103,6 +104,14 @@ class Writer {
Writer(StackAllocator* allocator = 0, size_t levelDepth = kDefaultLevelDepth) :
os_(0), level_stack_(allocator, levelDepth * sizeof(Level)), maxDecimalPlaces_(kDefaultMaxDecimalPlaces), hasRoot_(false) {}

#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
Writer(Writer &&other) :
os_(other.os_), level_stack_(std::move(other.level_stack_)), maxDecimalPlaces_(other.maxDecimalPlaces_), hasRoot_(other.hasRoot_)
{
other.os_=nullptr;
}
#endif

//! Reset the writer with a new stream.
/*!
This function reset the writer with a new stream and default settings,
Expand Down

0 comments on commit 2b73169

Please sign in to comment.