diff options
author | Jacques Lucke <jacques@blender.org> | 2020-08-10 19:13:28 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-08-10 19:17:07 +0300 |
commit | c521b69ffb68df17d6b8e1c71d23924a8b9b9cf3 (patch) | |
tree | 69f9505c110e7f1ce7769e0036f51eb439f20635 /source/blender/blenlib/BLI_hash.hh | |
parent | 53d203dea8230da4e80f3cc61468a4e24ff6759c (diff) |
BLI: improve StringRef for C++17
Since C++17 there is also std::string_view, which is similar to StringRef.
This commit does a couple of things:
* New implicit conversions between StringRef and std::string_view.
* Support std::string_view in blender::DefaultHash.
* Support most of the methods that std::string_view has.
* Add StringRef::not_found which can be used instead of -1 in some places.
* Improve/fix the description at the top of BLI_string_ref.hh.
Diffstat (limited to 'source/blender/blenlib/BLI_hash.hh')
-rw-r--r-- | source/blender/blenlib/BLI_hash.hh | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_hash.hh b/source/blender/blenlib/BLI_hash.hh index 8301dbb8e3a..2e3212cc83b 100644 --- a/source/blender/blenlib/BLI_hash.hh +++ b/source/blender/blenlib/BLI_hash.hh @@ -180,6 +180,13 @@ template<> struct DefaultHash<StringRefNull> { } }; +template<> struct DefaultHash<std::string_view> { + uint64_t operator()(StringRef value) const + { + return hash_string(value); + } +}; + /** * While we cannot guarantee that the lower 4 bits of a pointer are zero, it is often the case. */ |