| 3659 | } |
| 3660 | |
| 3661 | bool Value::removeMember(const char* begin, const char* end, Value* removed) { |
| 3662 | if (type_ != objectValue) { |
| 3663 | return false; |
| 3664 | } |
| 3665 | CZString actualKey(begin, static_cast<unsigned>(end - begin), |
| 3666 | CZString::noDuplication); |
| 3667 | ObjectValues::iterator it = value_.map_->find(actualKey); |
| 3668 | if (it == value_.map_->end()) |
| 3669 | return false; |
| 3670 | if (removed) |
| 3671 | #if JSON_HAS_RVALUE_REFERENCES |
| 3672 | *removed = std::move(it->second); |
| 3673 | #else |
| 3674 | *removed = it->second; |
| 3675 | #endif |
| 3676 | value_.map_->erase(it); |
| 3677 | return true; |
| 3678 | } |
| 3679 | bool Value::removeMember(const char* key, Value* removed) { |
| 3680 | return removeMember(key, key + strlen(key), removed); |
| 3681 | } |