Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
R
rapidjson
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
rapidjson
Commits
a6eb15d2
Commit
a6eb15d2
authored
Jan 23, 2016
by
Milo Yip
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix warnings in clang for C++11
parent
534da223
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
121 additions
and
11 deletions
+121
-11
CMakeLists.txt
CMakeLists.txt
+8
-0
serialize.cpp
example/serialize/serialize.cpp
+3
-0
document.h
include/rapidjson/document.h
+2
-2
stack.h
include/rapidjson/internal/stack.h
+9
-0
swap.h
include/rapidjson/internal/swap.h
+9
-0
stringbuffer.h
include/rapidjson/stringbuffer.h
+9
-0
documenttest.cpp
test/unittest/documenttest.cpp
+10
-0
readertest.cpp
test/unittest/readertest.cpp
+1
-0
stringbuffertest.cpp
test/unittest/stringbuffertest.cpp
+9
-0
unittest.cpp
test/unittest/unittest.cpp
+11
-0
unittest.h
test/unittest/unittest.h
+12
-0
valuetest.cpp
test/unittest/valuetest.cpp
+38
-9
No files found.
CMakeLists.txt
View file @
a6eb15d2
...
@@ -20,6 +20,8 @@ option(RAPIDJSON_BUILD_TESTS "Build rapidjson perftests and unittests." ON)
...
@@ -20,6 +20,8 @@ option(RAPIDJSON_BUILD_TESTS "Build rapidjson perftests and unittests." ON)
option
(
RAPIDJSON_BUILD_THIRDPARTY_GTEST
option
(
RAPIDJSON_BUILD_THIRDPARTY_GTEST
"Use gtest installation in `thirdparty/gtest` by default if available"
OFF
)
"Use gtest installation in `thirdparty/gtest` by default if available"
OFF
)
option
(
RAPIDJSON_BUILD_CXX11
"Build rapidjson with C++11 (gcc/clang)"
ON
)
option
(
RAPIDJSON_HAS_STDSTRING
""
OFF
)
option
(
RAPIDJSON_HAS_STDSTRING
""
OFF
)
if
(
RAPIDJSON_HAS_STDSTRING
)
if
(
RAPIDJSON_HAS_STDSTRING
)
add_definitions
(
-DRAPIDJSON_HAS_STDSTRING
)
add_definitions
(
-DRAPIDJSON_HAS_STDSTRING
)
...
@@ -27,8 +29,14 @@ endif()
...
@@ -27,8 +29,14 @@ endif()
if
(
"
${
CMAKE_CXX_COMPILER_ID
}
"
STREQUAL
"GNU"
)
if
(
"
${
CMAKE_CXX_COMPILER_ID
}
"
STREQUAL
"GNU"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-march=native -Wall -Wextra -Werror"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-march=native -Wall -Wextra -Werror"
)
if
(
RAPIDJSON_BUILD_CXX11
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-std=c++11"
)
endif
()
elseif
(
CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
)
elseif
(
CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-march=native -Wall -Wextra -Werror -Wno-missing-field-initializers"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-march=native -Wall -Wextra -Werror -Wno-missing-field-initializers"
)
if
(
RAPIDJSON_BUILD_CXX11
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-std=c++11"
)
endif
()
elseif
(
"
${
CMAKE_CXX_COMPILER_ID
}
"
STREQUAL
"MSVC"
)
elseif
(
"
${
CMAKE_CXX_COMPILER_ID
}
"
STREQUAL
"MSVC"
)
add_definitions
(
-D_CRT_SECURE_NO_WARNINGS=1
)
add_definitions
(
-D_CRT_SECURE_NO_WARNINGS=1
)
endif
()
endif
()
...
...
example/serialize/serialize.cpp
View file @
a6eb15d2
...
@@ -11,6 +11,7 @@ using namespace rapidjson;
...
@@ -11,6 +11,7 @@ using namespace rapidjson;
class
Person
{
class
Person
{
public
:
public
:
Person
(
const
std
::
string
&
name
,
unsigned
age
)
:
name_
(
name
),
age_
(
age
)
{}
Person
(
const
std
::
string
&
name
,
unsigned
age
)
:
name_
(
name
),
age_
(
age
)
{}
Person
(
const
Person
&
rhs
)
:
name_
(
rhs
.
name_
),
age_
(
rhs
.
age_
)
{}
virtual
~
Person
();
virtual
~
Person
();
protected
:
protected
:
...
@@ -38,6 +39,7 @@ Person::~Person() {
...
@@ -38,6 +39,7 @@ Person::~Person() {
class
Education
{
class
Education
{
public
:
public
:
Education
(
const
std
::
string
&
school
,
double
GPA
)
:
school_
(
school
),
GPA_
(
GPA
)
{}
Education
(
const
std
::
string
&
school
,
double
GPA
)
:
school_
(
school
),
GPA_
(
GPA
)
{}
Education
(
const
Education
&
rhs
)
:
school_
(
rhs
.
school_
),
GPA_
(
rhs
.
GPA_
)
{}
template
<
typename
Writer
>
template
<
typename
Writer
>
void
Serialize
(
Writer
&
writer
)
const
{
void
Serialize
(
Writer
&
writer
)
const
{
...
@@ -102,6 +104,7 @@ Dependent::~Dependent() {
...
@@ -102,6 +104,7 @@ Dependent::~Dependent() {
class
Employee
:
public
Person
{
class
Employee
:
public
Person
{
public
:
public
:
Employee
(
const
std
::
string
&
name
,
unsigned
age
,
bool
married
)
:
Person
(
name
,
age
),
dependents_
(),
married_
(
married
)
{}
Employee
(
const
std
::
string
&
name
,
unsigned
age
,
bool
married
)
:
Person
(
name
,
age
),
dependents_
(),
married_
(
married
)
{}
Employee
(
const
Employee
&
rhs
)
:
Person
(
rhs
),
dependents_
(
rhs
.
dependents_
),
married_
(
rhs
.
married_
)
{}
virtual
~
Employee
();
virtual
~
Employee
();
void
AddDependent
(
const
Dependent
&
dependent
)
{
void
AddDependent
(
const
Dependent
&
dependent
)
{
...
...
include/rapidjson/document.h
View file @
a6eb15d2
...
@@ -31,6 +31,7 @@ RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant
...
@@ -31,6 +31,7 @@ RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF
(
padded
)
RAPIDJSON_DIAG_OFF
(
padded
)
RAPIDJSON_DIAG_OFF
(
switch
-
enum
)
RAPIDJSON_DIAG_OFF
(
switch
-
enum
)
RAPIDJSON_DIAG_OFF
(
c
++
98
-
compat
)
#endif
#endif
#ifdef __GNUC__
#ifdef __GNUC__
...
@@ -141,6 +142,7 @@ public:
...
@@ -141,6 +142,7 @@ public:
Otherwise, the copy constructor is implicitly defined.
Otherwise, the copy constructor is implicitly defined.
*/
*/
GenericMemberIterator
(
const
NonConstIterator
&
it
)
:
ptr_
(
it
.
ptr_
)
{}
GenericMemberIterator
(
const
NonConstIterator
&
it
)
:
ptr_
(
it
.
ptr_
)
{}
Iterator
&
operator
=
(
const
NonConstIterator
&
it
)
{
ptr_
=
it
.
ptr_
;
return
*
this
;
}
//! @name stepping
//! @name stepping
//@{
//@{
...
@@ -314,8 +316,6 @@ struct GenericStringRef {
...
@@ -314,8 +316,6 @@ struct GenericStringRef {
const
SizeType
length
;
//!< length of the string (excluding the trailing NULL terminator)
const
SizeType
length
;
//!< length of the string (excluding the trailing NULL terminator)
private
:
private
:
//! Disallow copy-assignment
GenericStringRef
operator
=
(
const
GenericStringRef
&
);
//! Disallow construction from non-const array
//! Disallow construction from non-const array
template
<
SizeType
N
>
template
<
SizeType
N
>
GenericStringRef
(
CharType
(
&
str
)[
N
])
/* = delete */
;
GenericStringRef
(
CharType
(
&
str
)[
N
])
/* = delete */
;
...
...
include/rapidjson/internal/stack.h
View file @
a6eb15d2
...
@@ -18,6 +18,11 @@
...
@@ -18,6 +18,11 @@
#include "../rapidjson.h"
#include "../rapidjson.h"
#include "swap.h"
#include "swap.h"
#if defined(__clang__)
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF
(
c
++
98
-
compat
)
#endif
RAPIDJSON_NAMESPACE_BEGIN
RAPIDJSON_NAMESPACE_BEGIN
namespace
internal
{
namespace
internal
{
...
@@ -203,4 +208,8 @@ private:
...
@@ -203,4 +208,8 @@ private:
}
// namespace internal
}
// namespace internal
RAPIDJSON_NAMESPACE_END
RAPIDJSON_NAMESPACE_END
#if defined(__clang__)
RAPIDJSON_DIAG_POP
#endif
#endif // RAPIDJSON_STACK_H_
#endif // RAPIDJSON_STACK_H_
include/rapidjson/internal/swap.h
View file @
a6eb15d2
...
@@ -17,6 +17,11 @@
...
@@ -17,6 +17,11 @@
#include "../rapidjson.h"
#include "../rapidjson.h"
#if defined(__clang__)
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF
(
c
++
98
-
compat
)
#endif
RAPIDJSON_NAMESPACE_BEGIN
RAPIDJSON_NAMESPACE_BEGIN
namespace
internal
{
namespace
internal
{
...
@@ -34,4 +39,8 @@ inline void Swap(T& a, T& b) RAPIDJSON_NOEXCEPT {
...
@@ -34,4 +39,8 @@ inline void Swap(T& a, T& b) RAPIDJSON_NOEXCEPT {
}
// namespace internal
}
// namespace internal
RAPIDJSON_NAMESPACE_END
RAPIDJSON_NAMESPACE_END
#if defined(__clang__)
RAPIDJSON_DIAG_POP
#endif
#endif // RAPIDJSON_INTERNAL_SWAP_H_
#endif // RAPIDJSON_INTERNAL_SWAP_H_
include/rapidjson/stringbuffer.h
View file @
a6eb15d2
...
@@ -23,6 +23,11 @@
...
@@ -23,6 +23,11 @@
#include "internal/stack.h"
#include "internal/stack.h"
#if defined(__clang__)
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF
(
c
++
98
-
compat
)
#endif
RAPIDJSON_NAMESPACE_BEGIN
RAPIDJSON_NAMESPACE_BEGIN
//! Represents an in-memory output stream.
//! Represents an in-memory output stream.
...
@@ -103,4 +108,8 @@ inline void PutN(GenericStringBuffer<UTF8<> >& stream, char c, size_t n) {
...
@@ -103,4 +108,8 @@ inline void PutN(GenericStringBuffer<UTF8<> >& stream, char c, size_t n) {
RAPIDJSON_NAMESPACE_END
RAPIDJSON_NAMESPACE_END
#if defined(__clang__)
RAPIDJSON_DIAG_POP
#endif
#endif // RAPIDJSON_STRINGBUFFER_H_
#endif // RAPIDJSON_STRINGBUFFER_H_
test/unittest/documenttest.cpp
View file @
a6eb15d2
...
@@ -21,6 +21,12 @@
...
@@ -21,6 +21,12 @@
#include <sstream>
#include <sstream>
#include <algorithm>
#include <algorithm>
#ifdef __clang__
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF
(
c
++
98
-
compat
)
RAPIDJSON_DIAG_OFF
(
missing
-
variable
-
declarations
)
#endif
using
namespace
rapidjson
;
using
namespace
rapidjson
;
template
<
typename
DocumentType
>
template
<
typename
DocumentType
>
...
@@ -573,3 +579,7 @@ TYPED_TEST(DocumentMove, MoveAssignmentStack) {
...
@@ -573,3 +579,7 @@ TYPED_TEST(DocumentMove, MoveAssignmentStack) {
// Document d2;
// Document d2;
// d1 = d2;
// d1 = d2;
//}
//}
#ifdef __clang__
RAPIDJSON_DIAG_POP
#endif
test/unittest/readertest.cpp
View file @
a6eb15d2
...
@@ -31,6 +31,7 @@ RAPIDJSON_DIAG_OFF(missing-noreturn)
...
@@ -31,6 +31,7 @@ RAPIDJSON_DIAG_OFF(missing-noreturn)
#ifdef __clang__
#ifdef __clang__
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF
(
variadic
-
macros
)
RAPIDJSON_DIAG_OFF
(
variadic
-
macros
)
RAPIDJSON_DIAG_OFF
(
c
++
98
-
compat
-
pedantic
)
#endif
#endif
template
<
bool
expect
>
template
<
bool
expect
>
...
...
test/unittest/stringbuffertest.cpp
View file @
a6eb15d2
...
@@ -16,6 +16,11 @@
...
@@ -16,6 +16,11 @@
#include "rapidjson/stringbuffer.h"
#include "rapidjson/stringbuffer.h"
#include "rapidjson/writer.h"
#include "rapidjson/writer.h"
#ifdef __clang__
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF
(
c
++
98
-
compat
)
#endif
using
namespace
rapidjson
;
using
namespace
rapidjson
;
TEST
(
StringBuffer
,
InitialSize
)
{
TEST
(
StringBuffer
,
InitialSize
)
{
...
@@ -148,3 +153,7 @@ TEST(StringBuffer, MoveAssignment) {
...
@@ -148,3 +153,7 @@ TEST(StringBuffer, MoveAssignment) {
}
}
#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
#ifdef __clang__
RAPIDJSON_DIAG_POP
#endif
test/unittest/unittest.cpp
View file @
a6eb15d2
...
@@ -15,8 +15,19 @@
...
@@ -15,8 +15,19 @@
#include "unittest.h"
#include "unittest.h"
#include "rapidjson/rapidjson.h"
#include "rapidjson/rapidjson.h"
#ifdef __clang__
#pragma GCC diagnostic push
#if __has_warning("-Wdeprecated")
#pragma GCC diagnostic ignored "-Wdeprecated"
#endif
#endif
AssertException
::~
AssertException
()
throw
()
{}
AssertException
::~
AssertException
()
throw
()
{}
#ifdef __clang__
#pragma GCC diagnostic pop
#endif
int
main
(
int
argc
,
char
**
argv
)
{
int
main
(
int
argc
,
char
**
argv
)
{
::
testing
::
InitGoogleTest
(
&
argc
,
argv
);
::
testing
::
InitGoogleTest
(
&
argc
,
argv
);
...
...
test/unittest/unittest.h
View file @
a6eb15d2
...
@@ -99,12 +99,24 @@ inline FILE* TempFile(char *filename) {
...
@@ -99,12 +99,24 @@ inline FILE* TempFile(char *filename) {
#pragma warning(disable : 4127)
#pragma warning(disable : 4127)
#endif
#endif
#ifdef __clang__
#pragma GCC diagnostic push
#if __has_warning("-Wdeprecated")
#pragma GCC diagnostic ignored "-Wdeprecated"
#endif
#endif
class
AssertException
:
public
std
::
logic_error
{
class
AssertException
:
public
std
::
logic_error
{
public
:
public
:
AssertException
(
const
char
*
w
)
:
std
::
logic_error
(
w
)
{}
AssertException
(
const
char
*
w
)
:
std
::
logic_error
(
w
)
{}
AssertException
(
const
AssertException
&
rhs
)
:
std
::
logic_error
(
rhs
)
{}
virtual
~
AssertException
()
throw
();
virtual
~
AssertException
()
throw
();
};
};
#ifdef __clang__
#pragma GCC diagnostic pop
#endif
#define RAPIDJSON_ASSERT(x) if (!(x)) throw AssertException(RAPIDJSON_STRINGIFY(x))
#define RAPIDJSON_ASSERT(x) if (!(x)) throw AssertException(RAPIDJSON_STRINGIFY(x))
class
Random
{
class
Random
{
...
...
test/unittest/valuetest.cpp
View file @
a6eb15d2
...
@@ -16,6 +16,11 @@
...
@@ -16,6 +16,11 @@
#include "rapidjson/document.h"
#include "rapidjson/document.h"
#include <algorithm>
#include <algorithm>
#ifdef __clang__
RAPIDJSON_DIAG_PUSH
RAPIDJSON_DIAG_OFF
(
c
++
98
-
compat
)
#endif
using
namespace
rapidjson
;
using
namespace
rapidjson
;
TEST
(
Value
,
DefaultConstructor
)
{
TEST
(
Value
,
DefaultConstructor
)
{
...
@@ -764,15 +769,15 @@ TEST(Value, Array) {
...
@@ -764,15 +769,15 @@ TEST(Value, Array) {
#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
// PushBack(GenericValue&&, Allocator&);
// PushBack(GenericValue&&, Allocator&);
{
{
Value
y
(
kArrayType
);
Value
y
2
(
kArrayType
);
y
.
PushBack
(
Value
(
true
),
allocator
);
y
2
.
PushBack
(
Value
(
true
),
allocator
);
y
.
PushBack
(
std
::
move
(
Value
(
kArrayType
).
PushBack
(
Value
(
1
),
allocator
).
PushBack
(
"foo"
,
allocator
)),
allocator
);
y
2
.
PushBack
(
std
::
move
(
Value
(
kArrayType
).
PushBack
(
Value
(
1
),
allocator
).
PushBack
(
"foo"
,
allocator
)),
allocator
);
EXPECT_EQ
(
2u
,
y
.
Size
());
EXPECT_EQ
(
2u
,
y
2
.
Size
());
EXPECT_TRUE
(
y
[
0
].
IsTrue
());
EXPECT_TRUE
(
y
2
[
0
].
IsTrue
());
EXPECT_TRUE
(
y
[
1
].
IsArray
());
EXPECT_TRUE
(
y
2
[
1
].
IsArray
());
EXPECT_EQ
(
2u
,
y
[
1
].
Size
());
EXPECT_EQ
(
2u
,
y
2
[
1
].
Size
());
EXPECT_TRUE
(
y
[
1
][
0
].
IsInt
());
EXPECT_TRUE
(
y
2
[
1
][
0
].
IsInt
());
EXPECT_TRUE
(
y
[
1
][
1
].
IsString
());
EXPECT_TRUE
(
y
2
[
1
][
1
].
IsString
());
}
}
#endif
#endif
...
@@ -1354,3 +1359,27 @@ TEST(Value, AcceptTerminationByHandler) {
...
@@ -1354,3 +1359,27 @@ TEST(Value, AcceptTerminationByHandler) {
TEST_TERMINATION
(
11
,
"{
\"
a
\"
:[]}"
);
TEST_TERMINATION
(
11
,
"{
\"
a
\"
:[]}"
);
TEST_TERMINATION
(
12
,
"{
\"
a
\"
:[]}"
);
TEST_TERMINATION
(
12
,
"{
\"
a
\"
:[]}"
);
}
}
struct
ValueIntComparer
{
bool
operator
()(
const
Value
&
lhs
,
const
Value
&
rhs
)
const
{
return
lhs
.
GetInt
()
<
rhs
.
GetInt
();
}
};
#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
TEST
(
Value
,
Sorting
)
{
Value
::
AllocatorType
allocator
;
Value
a
(
kArrayType
);
a
.
PushBack
(
5
,
allocator
);
a
.
PushBack
(
1
,
allocator
);
a
.
PushBack
(
3
,
allocator
);
std
::
sort
(
a
.
Begin
(),
a
.
End
(),
ValueIntComparer
());
EXPECT_EQ
(
1
,
a
[
0
].
GetInt
());
EXPECT_EQ
(
3
,
a
[
1
].
GetInt
());
EXPECT_EQ
(
5
,
a
[
2
].
GetInt
());
}
#endif
#ifdef __clang__
RAPIDJSON_DIAG_POP
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment