diff options
author | Chris Kennelly <ckennelly@google.com> | 2016-12-15 16:17:17 -0800 |
---|---|---|
committer | Chris Kennelly <ckennelly@google.com> | 2016-12-16 13:50:14 -0800 |
commit | 183d31cbdb5197b1a014893a91198e970379f656 (patch) | |
tree | 1dcb6e66e200a91724895185b4561aec8dc9552b /src/google/protobuf/arenastring.h | |
parent | a95e38ce8dec20d327692f4f5c2b0d37d6776696 (diff) |
Add rvalue setters for non-arena strings on C++11.
Diffstat (limited to 'src/google/protobuf/arenastring.h')
-rwxr-xr-x | src/google/protobuf/arenastring.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/google/protobuf/arenastring.h b/src/google/protobuf/arenastring.h index b60ee379..bc427ba2 100755 --- a/src/google/protobuf/arenastring.h +++ b/src/google/protobuf/arenastring.h @@ -210,6 +210,16 @@ struct LIBPROTOBUF_EXPORT ArenaStringPtr { } } +#if LANG_CXX11 + void SetNoArena(const ::std::string* default_value, ::std::string&& value) { + if (IsDefault(default_value)) { + ptr_ = new ::std::string(std::move(value)); + } else { + *ptr_ = std::move(value); + } + } +#endif + void AssignWithDefault(const ::std::string* default_value, ArenaStringPtr value); inline const ::std::string& GetNoArena() const { return *ptr_; } |