From 32c16d319ee43dbf02588373b07ef21c9574ca58 Mon Sep 17 00:00:00 2001 From: Tobias Klausmann Date: Thu, 21 Sep 2023 14:09:00 +0200 Subject: [PATCH] MinMaxString: Add *operator for assigning std::string Signed-off-by: Tobias Klausmann --- src/libaas/basyx/base/minMaxString.cpp | 5 +++++ src/libaas/basyx/base/minMaxString.h | 1 + tests/tests_libaas/test_basyx.cpp | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libaas/basyx/base/minMaxString.cpp b/src/libaas/basyx/base/minMaxString.cpp index 58e7f36..371e847 100644 --- a/src/libaas/basyx/base/minMaxString.cpp +++ b/src/libaas/basyx/base/minMaxString.cpp @@ -15,6 +15,11 @@ MinMaxString &MinMaxString::operator=(const MinMaxString &str) noexcept { return *this; } +std::string MinMaxString::operator*() noexcept { + return this->str(); + +} + MinMaxString &MinMaxString::operator=(const basyx::util::string_view& str) noexcept { replace(str.to_string()); return *this; diff --git a/src/libaas/basyx/base/minMaxString.h b/src/libaas/basyx/base/minMaxString.h index 2f72810..4c9a382 100644 --- a/src/libaas/basyx/base/minMaxString.h +++ b/src/libaas/basyx/base/minMaxString.h @@ -36,6 +36,7 @@ class MinMaxString: protected std::string { MinMaxString& operator=(const MinMaxString& str) noexcept; MinMaxString& operator=(const basyx::util::string_view& str) noexcept; MinMaxString& operator=(const std::string& str) noexcept; + std::string operator*() noexcept; //MinMaxString& operator=(MinMaxString &) noexcept = default; bool operator==(const std::string& rhs) { diff --git a/tests/tests_libaas/test_basyx.cpp b/tests/tests_libaas/test_basyx.cpp index 2738ea0..a756ff1 100644 --- a/tests/tests_libaas/test_basyx.cpp +++ b/tests/tests_libaas/test_basyx.cpp @@ -53,7 +53,7 @@ TEST_F(BaseTest, MinMaxString) { ASSERT_EQ(min, mmStr.length()); std::string cmp; cmp+= base::STRING_PADDING; - ASSERT_STREQ(cmp.data(), mmStr.str().data()); + ASSERT_STREQ(cmp.data(), (*mmStr).data()); // Check if max size is honored base::MinMaxString mmStr2(min, max); @@ -77,6 +77,10 @@ TEST_F(BaseTest, MinMaxString) { mmStr5.assign(ste); ASSERT_STREQ(ste.data(), mmStr5.str().data()); + + base::MinMaxString mmStr6(min, max); + mmStr6.assign("bla"); + std::string base = *mmStr6; } TEST_F(BaseTest, VersionRevisionType)