mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2024-12-27 11:21:02 +08:00
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.
This commit is contained in:
parent
0c91927da2
commit
24f544996f
@ -195,19 +195,23 @@ void Value::CommentInfo::setComment(const char* text, size_t len) {
|
||||
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user