diff --git a/common/string/RCString.cpp b/common/string/RCString.cpp index 2f13ffc..1643b3b 100644 --- a/common/string/RCString.cpp +++ b/common/string/RCString.cpp @@ -36,3 +36,7 @@ const char* RCString::GetString() const { return nullptr; } } + +RCString::operator const char*() const { + return this->GetString(); +} diff --git a/common/string/RCString.hpp b/common/string/RCString.hpp index d41e2a9..b867345 100644 --- a/common/string/RCString.hpp +++ b/common/string/RCString.hpp @@ -15,6 +15,7 @@ class RCString : public TRefCnt { void Copy(const RCString& source); void Get(char* buf, size_t bufSize) const; const char* GetString() const; + operator const char*() const; }; #endif diff --git a/test/String.cpp b/test/String.cpp index 807b612..944a7d0 100644 --- a/test/String.cpp +++ b/test/String.cpp @@ -40,3 +40,12 @@ TEST_CASE("RCString::GetString", "[string]") { REQUIRE(rcStr1.GetString() != rcStr2.GetString()); } } + +TEST_CASE("RCString::operator const char*", "[string]") { + SECTION("casts a RCString object to a const char*") { + auto str = "foo"; + RCString rcStr; + rcStr.Copy(str); + REQUIRE(!SStrCmp(str, (const char*)rcStr, STORM_MAX_STR)); + } +}