10000 Fixed error `forming reference to reference` (issue #495) · trinhduc/ArduinoJson@cc66618 · GitHub
[go: up one dir, main page]

Skip to content

Commit cc66618

Browse files
committed
Fixed error forming reference to reference (issue bblanchon#495)
1 parent 9efc0ec commit cc66618

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ HEAD
55
----
66

77
* Fixed error `IsBaseOf is not a member of ArduinoJson::TypeTraits` (issue #495)
8+
* Fixed error `forming reference to reference` (issue #495)
89

910
v5.9.0
1011
------

src/ArduinoJson/Data/ValueSetter.hpp

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,35 +15,33 @@
1515
namespace ArduinoJson {
1616
namespace Internals {
1717

18-
template <typename TSource, typename Enable = void>
18+
template <typename TSourceRef, typename Enable = void>
1919
struct ValueSetter {
2020
template <typename TDestination>
21-
static bool set(JsonBuffer*, TDestination& destination,
22-
const TSource& source) {
21+
static bool set(JsonBuffer*, TDestination& destination, TSourceRef source) {
2322
destination = source;
2423
return true;
2524
}
2625
};
2726

28-
template <typename TSource>
29-
struct ValueSetter<TSource, typename TypeTraits::EnableIf<StringTraits<
30-
TSource>::should_duplicate>::type> {
27+
template <typename TSourceRef>
28+
struct ValueSetter 10000 <TSourceRef, typename TypeTraits::EnableIf<StringTraits<
29+
TSourceRef>::should_duplicate>::type> {
3130
template <typename TDestination>
3231
static bool set(JsonBuffer* buffer, TDestination& destination,
33-
const TSource& source) {
32+
TSourceRef source) {
3433
const char* copy = buffer->strdup(source);
3534
if (!copy) return false;
3635
destination = copy;
3736
return true;
3837
}
3938
};
4039

41-
template <typename TSource>
42-
struct ValueSetter<TSource, typename TypeTraits::EnableIf<!StringTraits<
43-
TSource>::should_duplicate>::type> {
40+
template <typename TSourceRef>
41+
struct ValueSetter<TSourceRef, typename TypeTraits::EnableIf<!StringTraits<
42+
TSourceRef>::should_duplicate>::type> {
4443
template <typename TDestination>
45-
static bool set(JsonBuffer*, TDestination& destination,
46-
const TSource& source) {
44+
static bool set(JsonBuffer*, TDestination& destination, TSourceRef source) {
4745
// unsigned char* -> char*
4846
destination = reinterpret_cast<const char*>(source);
4947
return true;

test/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
2929
-Wstrict-overflow=5
3030
-Wundef
3131
)
32+
33+
if(NOT MINGW)
34+
add_compile_options(
35+
-std=c++98
36+
)
37+
endif()
3238
endif()
3339

3440
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")

0 commit comments

Comments
 (0)
0