Skip to content

Commit 0325ead

Browse files
committed
sink parameters passed by value and moved from, more flexible, easier to maintain and *nearly* just as efficient (2
moves instead of 1 sometimes, but ... i doubt that will make a difference)
1 parent 3770aed commit 0325ead

2 files changed

Lines changed: 4 additions & 20 deletions

File tree

include/cpp-json/value.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,8 @@ class value {
5858
~value();
5959

6060
public:
61-
explicit value(const object_pointer &o);
62-
explicit value(const array_pointer &a);
63-
explicit value(object_pointer &&o);
64-
explicit value(array_pointer &&a);
61+
explicit value(object_pointer o);
62+
explicit value(array_pointer a);
6563

6664
public:
6765
value(const value &other);

include/cpp-json/value.tcc

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@ inline value &value::operator=(value &&rhs) {
6161
//------------------------------------------------------------------------------
6262
// Name: value
6363
//------------------------------------------------------------------------------
64-
inline value::value(object_pointer &&o) : type_(type_object) {
64+
inline value::value(object_pointer o) : type_(type_object) {
6565
new (&value_) object_pointer(std::move(o));
6666
}
6767

6868
//------------------------------------------------------------------------------
6969
// Name: value
7070
//------------------------------------------------------------------------------
71-
inline value::value(array_pointer &&a) : type_(type_array) {
71+
inline value::value(array_pointer a) : type_(type_array) {
7272
new (&value_) array_pointer(std::move(a));
7373
}
7474

@@ -86,20 +86,6 @@ inline value::value(std::string s) : type_(type_string) {
8686
new (&value_) std::string(std::move(s));
8787
}
8888

89-
//------------------------------------------------------------------------------
90-
// Name: value
91-
//------------------------------------------------------------------------------
92-
inline value::value(const object_pointer &o) : type_(type_object) {
93-
new (&value_) object_pointer(o);
94-
}
95-
96-
//------------------------------------------------------------------------------
97-
// Name: value
98-
//------------------------------------------------------------------------------
99-
inline value::value(const array_pointer &a) : type_(type_array) {
100-
new (&value_) array_pointer(a);
101-
}
102-
10389
//------------------------------------------------------------------------------
10490
// Name: value
10591
//------------------------------------------------------------------------------

0 commit comments

Comments
 (0)