File tree Expand file tree Collapse file tree 2 files changed +26
-2
lines changed Expand file tree Collapse file tree 2 files changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -63,15 +63,39 @@ class GenericDocument;
63
63
https://code.google.com/p/rapidjson/issues/detail?id=64
64
64
*/
65
65
template <typename Encoding, typename Allocator>
66
- struct GenericMember {
66
+ class GenericMember {
67
+ public:
67
68
GenericValue<Encoding, Allocator> name; // !< name of member (must be a string)
68
69
GenericValue<Encoding, Allocator> value; // !< value of member.
69
70
71
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
72
+ // ! Move constructor in C++11
73
+ GenericMember (GenericMember&& rhs) RAPIDJSON_NOEXCEPT = default;
74
+
75
+ // ! Move assignment in C++11
76
+ GenericMember& operator =(GenericMember&& rhs) RAPIDJSON_NOEXCEPT = default ;
77
+ #endif
78
+
79
+ // ! Assignment with move semantics.
80
+ /* ! \param rhs Source of the assignment. Its name and value will become a null value after assignment.
81
+ */
82
+ GenericMember& operator =(GenericMember& rhs) RAPIDJSON_NOEXCEPT {
83
+ if (RAPIDJSON_LIKELY (this != &rhs)) {
84
+ name = rhs.name ;
85
+ value = rhs.value ;
86
+ }
87
+ return *this ;
88
+ }
89
+
70
90
// swap() for std::sort() and other potential use in STL.
71
91
friend inline void swap (GenericMember& a, GenericMember& b) RAPIDJSON_NOEXCEPT {
72
92
a.name .Swap (b.name );
73
93
a.value .Swap (b.value );
74
94
}
95
+
96
+ private:
97
+ // ! Copy constructor is not permitted.
98
+ GenericMember (const GenericMember& rhs);
75
99
};
76
100
77
101
// /////////////////////////////////////////////////////////////////////////////
Original file line number Diff line number Diff line change @@ -102,7 +102,7 @@ class PrettyWriter;
102
102
// document.h
103
103
104
104
template <typename Encoding, typename Allocator>
105
- struct GenericMember ;
105
+ class GenericMember ;
106
106
107
107
template <bool Const, typename Encoding, typename Allocator>
108
108
class GenericMemberIterator ;
You can’t perform that action at this time.
0 commit comments