From 0e3d34e48f5d5ed3845b1858a66008ab87c55af8 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Fri, 17 Jul 2020 12:38:15 +0200 Subject: BLI: add StringRefNull.c_str() method This should be used whenever you rely on the fact, that the returned pointer points to the beginning of a null-terminated array. --- source/blender/blenlib/BLI_string_ref.hh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'source/blender/blenlib/BLI_string_ref.hh') diff --git a/source/blender/blenlib/BLI_string_ref.hh b/source/blender/blenlib/BLI_string_ref.hh index bcf2d20338e..5b555b8cd1d 100644 --- a/source/blender/blenlib/BLI_string_ref.hh +++ b/source/blender/blenlib/BLI_string_ref.hh @@ -187,7 +187,7 @@ class StringRefNull : public StringRefBase { * Reference a std::string. Remember that when the std::string is destructed, the StringRefNull * will point to uninitialized memory. */ - StringRefNull(const std::string &str) : StringRefNull(str.data()) + StringRefNull(const std::string &str) : StringRefNull(str.c_str()) { } @@ -200,6 +200,16 @@ class StringRefNull : public StringRefBase { BLI_assert(index <= size_); return data_[index]; } + + /** + * Returns the beginning of a null-terminated char array. + * + * This is like ->data(), but can only be called on a StringRefNull. + */ + const char *c_str() const + { + return data_; + } }; /** -- cgit v1.2.3