no struct init
The C struct initializer is not standard C++.
GCC and Clang handle this (at least in some versions) but some
compilers might not.
diff --git a/src/lib_json/json_value.cpp b/src/lib_json/json_value.cpp
index b8d224b..979a1bc 100644
--- a/src/lib_json/json_value.cpp
+++ b/src/lib_json/json_value.cpp
@@ -195,19 +195,23 @@
Value::CZString::CZString(ArrayIndex index) : cstr_(0), index_(index) {}
Value::CZString::CZString(char const* str, unsigned length, DuplicationPolicy allocate)
- : cstr_(allocate == duplicate ? duplicateStringValue(str) : str),
- storage_({allocate, length})
-{}
+ : cstr_(allocate == duplicate ? duplicateStringValue(str) : str)
+{
+ storage_.policy_ = allocate;
+ storage_.length_ = length;
+}
Value::CZString::CZString(const CZString& other)
: cstr_(other.storage_.policy_ != noDuplication && other.cstr_ != 0
? duplicateStringValue(other.cstr_)
- : other.cstr_),
- storage_({(other.cstr_
+ : other.cstr_)
+{
+ storage_.policy_ = (other.cstr_
? (other.storage_.policy_ == noDuplication
? noDuplication : duplicate)
- : other.storage_.policy_), other.storage_.length_})
-{}
+ : other.storage_.policy_);
+ storage_.length_ = other.storage_.length_;
+}
Value::CZString::~CZString() {
if (cstr_ && storage_.policy_ == duplicate)