Merge remote-tracking branch 'origin/master' into issue120floatprecision_customstrtod

This commit is contained in:
Milo Yip 2014-11-23 08:48:03 +08:00
commit 3679c280dd
6 changed files with 65 additions and 35 deletions

View File

@ -1862,6 +1862,8 @@ private:
}
private:
//! Prohibit copying
GenericDocument(const GenericDocument&);
//! Prohibit assignment
GenericDocument& operator=(const GenericDocument&);

View File

@ -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 {

View File

@ -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) {}

View File

@ -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.

View File

@ -232,26 +232,38 @@ TEST(Document, UTF16_Document) {
#include <type_traits>
TEST(Document, Traits) {
static_assert( std::is_constructible<Document>::value, "");
static_assert( std::is_default_constructible<Document>::value, "");
static_assert(!std::is_copy_constructible<Document>::value, "");
static_assert( std::is_move_constructible<Document>::value, "");
static_assert(std::is_constructible<Document>::value, "");
static_assert(std::is_default_constructible<Document>::value, "");
#ifndef _MSC_VER
static_assert(!std::is_copy_constructible<Document>::value, "");
#endif
static_assert(std::is_move_constructible<Document>::value, "");
static_assert(!std::is_nothrow_constructible<Document>::value, "");
static_assert(!std::is_nothrow_default_constructible<Document>::value, "");
static_assert(!std::is_nothrow_copy_constructible<Document>::value, "");
static_assert( std::is_nothrow_move_constructible<Document>::value, "");
static_assert(!std::is_nothrow_constructible<Document>::value, "");
static_assert(!std::is_nothrow_default_constructible<Document>::value, "");
static_assert(!std::is_nothrow_copy_constructible<Document>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_move_constructible<Document>::value, "");
#endif
static_assert( std::is_assignable<Document,Document>::value, "");
static_assert(std::is_assignable<Document,Document>::value, "");
#ifndef _MSC_VER
static_assert(!std::is_copy_assignable<Document>::value, "");
static_assert( std::is_move_assignable<Document>::value, "");
#endif
static_assert(std::is_move_assignable<Document>::value, "");
static_assert( std::is_nothrow_assignable<Document,Document>::value, "");
static_assert(!std::is_nothrow_copy_assignable<Document>::value, "");
static_assert( std::is_nothrow_move_assignable<Document>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_assignable<Document, Document>::value, "");
#endif
static_assert(!std::is_nothrow_copy_assignable<Document>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_move_assignable<Document>::value, "");
#endif
static_assert( std::is_destructible<Document>::value, "");
static_assert( std::is_nothrow_destructible<Document>::value, "");
static_assert( std::is_destructible<Document>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_destructible<Document>::value, "");
#endif
}
template <typename Allocator>

View File

@ -43,27 +43,41 @@ TEST(Value, DefaultConstructor) {
#include <type_traits>
TEST(Value, Traits) {
typedef GenericValue<UTF8<>, CrtAllocator> Value;
static_assert( std::is_constructible<Value>::value, "");
static_assert( std::is_default_constructible<Value>::value, "");
static_assert(!std::is_copy_constructible<Value>::value, "");
static_assert( std::is_move_constructible<Value>::value, "");
typedef GenericValue<UTF8<>, CrtAllocator> Value;
static_assert(std::is_constructible<Value>::value, "");
static_assert(std::is_default_constructible<Value>::value, "");
#ifndef _MSC_VER
static_assert(!std::is_copy_constructible<Value>::value, "");
#endif
static_assert(std::is_move_constructible<Value>::value, "");
static_assert( std::is_nothrow_constructible<Value>::value, "");
static_assert( std::is_nothrow_default_constructible<Value>::value, "");
static_assert(!std::is_nothrow_copy_constructible<Value>::value, "");
static_assert( std::is_nothrow_move_constructible<Value>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_constructible<Value>::value, "");
static_assert(std::is_nothrow_default_constructible<Value>::value, "");
#endif
static_assert(!std::is_nothrow_copy_constructible<Value>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_move_constructible<Value>::value, "");
#endif
static_assert( std::is_assignable<Value,Value>::value, "");
static_assert(!std::is_copy_assignable<Value>::value, "");
static_assert( std::is_move_assignable<Value>::value, "");
static_assert(std::is_assignable<Value,Value>::value, "");
#ifndef _MSC_VER
static_assert(!std::is_copy_assignable<Value>::value, "");
#endif
static_assert(std::is_move_assignable<Value>::value, "");
static_assert( std::is_nothrow_assignable<Value,Value>::value, "");
static_assert(!std::is_nothrow_copy_assignable<Value>::value, "");
static_assert( std::is_nothrow_move_assignable<Value>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_assignable<Value, Value>::value, "");
#endif
static_assert(!std::is_nothrow_copy_assignable<Value>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_move_assignable<Value>::value, "");
#endif
static_assert( std::is_destructible<Value>::value, "");
static_assert( std::is_nothrow_destructible<Value>::value, "");
static_assert(std::is_destructible<Value>::value, "");
#ifndef _MSC_VER
static_assert(std::is_nothrow_destructible<Value>::value, "");
#endif
}
TEST(Value, MoveConstructor) {