| 3870 | } |
| 3871 | |
| 3872 | bool Value::removeMember(const char *begin, const char *end, Value *removed) |
| 3873 | { |
| 3874 | if (type() != objectValue) |
| 3875 | { |
| 3876 | return false; |
| 3877 | } |
| 3878 | CZString actualKey(begin, static_cast<unsigned>(end - begin), CZString::noDuplication); |
| 3879 | auto it = value_.map_->find(actualKey); |
| 3880 | if (it == value_.map_->end()) |
| 3881 | return false; |
| 3882 | if (removed) |
| 3883 | *removed = std::move(it->second); |
| 3884 | value_.map_->erase(it); |
| 3885 | return true; |
| 3886 | } |
| 3887 | bool Value::removeMember(const char *key, Value *removed) |
| 3888 | { |
| 3889 | return removeMember(key, key + strlen(key), removed); |