diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h index bdea8e7..047bc66 100644 --- a/include/rapidjson/document.h +++ b/include/rapidjson/document.h @@ -1862,6 +1862,8 @@ private: } private: + //! Prohibit copying + GenericDocument(const GenericDocument&); //! Prohibit assignment GenericDocument& operator=(const GenericDocument&); diff --git a/include/rapidjson/internal/diyfp.h b/include/rapidjson/internal/diyfp.h index 9097583..e6937ec 100644 --- a/include/rapidjson/internal/diyfp.h +++ b/include/rapidjson/internal/diyfp.h @@ -43,7 +43,7 @@ RAPIDJSON_DIAG_OFF(effc++) struct DiyFp { DiyFp() {} - DiyFp(uint64_t f, int e) : f(f), e(e) {} + DiyFp(uint64_t fp, int exp) : f(fp), e(exp) {} explicit DiyFp(double d) { union { diff --git a/include/rapidjson/writer.h b/include/rapidjson/writer.h index fdade6e..02d6680 100644 --- a/include/rapidjson/writer.h +++ b/include/rapidjson/writer.h @@ -59,12 +59,14 @@ public: //! Constructor /*! \param os Output stream. - \param allocator User supplied allocator. If it is null, it will create a private one. + \param stackAllocator User supplied allocator. If it is null, it will create a private one. \param levelDepth Initial capacity of stack. */ + explicit Writer(OutputStream& os, StackAllocator* stackAllocator = 0, size_t levelDepth = kDefaultLevelDepth) : os_(&os), level_stack_(stackAllocator, levelDepth * sizeof(Level)), hasRoot_(false) {} + explicit Writer(StackAllocator* allocator = 0, size_t levelDepth = kDefaultLevelDepth) : os_(0), level_stack_(allocator, levelDepth * sizeof(Level)), hasRoot_(false) {} diff --git a/readme.md b/readme.md index 3c53cc2..ad5b204 100644 --- a/readme.md +++ b/readme.md @@ -97,4 +97,4 @@ The following diagram shows the process. ![simpledom](doc/diagram/simpledom.png) -More [examples](example/) are available. +More [examples](https://github.com/miloyip/rapidjson/tree/master/example) are available. diff --git a/test/unittest/documenttest.cpp b/test/unittest/documenttest.cpp index 250d67b..a8467e3 100644 --- a/test/unittest/documenttest.cpp +++ b/test/unittest/documenttest.cpp @@ -232,26 +232,38 @@ TEST(Document, UTF16_Document) { #include TEST(Document, Traits) { - static_assert( std::is_constructible::value, ""); - static_assert( std::is_default_constructible::value, ""); - static_assert(!std::is_copy_constructible::value, ""); - static_assert( std::is_move_constructible::value, ""); + static_assert(std::is_constructible::value, ""); + static_assert(std::is_default_constructible::value, ""); +#ifndef _MSC_VER + static_assert(!std::is_copy_constructible::value, ""); +#endif + static_assert(std::is_move_constructible::value, ""); - static_assert(!std::is_nothrow_constructible::value, ""); - static_assert(!std::is_nothrow_default_constructible::value, ""); - static_assert(!std::is_nothrow_copy_constructible::value, ""); - static_assert( std::is_nothrow_move_constructible::value, ""); + static_assert(!std::is_nothrow_constructible::value, ""); + static_assert(!std::is_nothrow_default_constructible::value, ""); + static_assert(!std::is_nothrow_copy_constructible::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_move_constructible::value, ""); +#endif - static_assert( std::is_assignable::value, ""); + static_assert(std::is_assignable::value, ""); +#ifndef _MSC_VER static_assert(!std::is_copy_assignable::value, ""); - static_assert( std::is_move_assignable::value, ""); +#endif + static_assert(std::is_move_assignable::value, ""); - static_assert( std::is_nothrow_assignable::value, ""); - static_assert(!std::is_nothrow_copy_assignable::value, ""); - static_assert( std::is_nothrow_move_assignable::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_assignable::value, ""); +#endif + static_assert(!std::is_nothrow_copy_assignable::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_move_assignable::value, ""); +#endif - static_assert( std::is_destructible::value, ""); - static_assert( std::is_nothrow_destructible::value, ""); + static_assert( std::is_destructible::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_destructible::value, ""); +#endif } template diff --git a/test/unittest/valuetest.cpp b/test/unittest/valuetest.cpp index 1f3ffe8..986f23a 100644 --- a/test/unittest/valuetest.cpp +++ b/test/unittest/valuetest.cpp @@ -43,27 +43,41 @@ TEST(Value, DefaultConstructor) { #include TEST(Value, Traits) { - typedef GenericValue, CrtAllocator> Value; - static_assert( std::is_constructible::value, ""); - static_assert( std::is_default_constructible::value, ""); - static_assert(!std::is_copy_constructible::value, ""); - static_assert( std::is_move_constructible::value, ""); + typedef GenericValue, CrtAllocator> Value; + static_assert(std::is_constructible::value, ""); + static_assert(std::is_default_constructible::value, ""); +#ifndef _MSC_VER + static_assert(!std::is_copy_constructible::value, ""); +#endif + static_assert(std::is_move_constructible::value, ""); - static_assert( std::is_nothrow_constructible::value, ""); - static_assert( std::is_nothrow_default_constructible::value, ""); - static_assert(!std::is_nothrow_copy_constructible::value, ""); - static_assert( std::is_nothrow_move_constructible::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_constructible::value, ""); + static_assert(std::is_nothrow_default_constructible::value, ""); +#endif + static_assert(!std::is_nothrow_copy_constructible::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_move_constructible::value, ""); +#endif - static_assert( std::is_assignable::value, ""); - static_assert(!std::is_copy_assignable::value, ""); - static_assert( std::is_move_assignable::value, ""); + static_assert(std::is_assignable::value, ""); +#ifndef _MSC_VER + static_assert(!std::is_copy_assignable::value, ""); +#endif + static_assert(std::is_move_assignable::value, ""); - static_assert( std::is_nothrow_assignable::value, ""); - static_assert(!std::is_nothrow_copy_assignable::value, ""); - static_assert( std::is_nothrow_move_assignable::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_assignable::value, ""); +#endif + static_assert(!std::is_nothrow_copy_assignable::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_move_assignable::value, ""); +#endif - static_assert( std::is_destructible::value, ""); - static_assert( std::is_nothrow_destructible::value, ""); + static_assert(std::is_destructible::value, ""); +#ifndef _MSC_VER + static_assert(std::is_nothrow_destructible::value, ""); +#endif } TEST(Value, MoveConstructor) {