clang-tidy-21: fix cppcoreguidelines-pro-bounds-pointer-arithmetic
Fix various pro-bounds-pointer-arithmetic warnings that started being
reported with clang-tidy-21.
```
error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors]
```
Forked this change from [1]
References:
[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/84049
Tested: Inspection only.
Change-Id: I535802825e68d7f5fe01ed2428d127f7a18ab4f8
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/src/utils.hpp b/src/utils.hpp
index 123a316..3a3a083 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -8,6 +8,7 @@
#include <sdbusplus/asio/connection.hpp>
#include <sdbusplus/exception.hpp>
+#include <charconv>
#include <filesystem>
using DBusValueVariant =
@@ -73,3 +74,15 @@
/// \param dbusValue the property value being matched to a probe.
/// \return true if the dbusValue matched the probe otherwise false.
bool matchProbe(const nlohmann::json& probe, const DBusValueVariant& dbusValue);
+
+template <typename T>
+std::from_chars_result fromCharsWrapper(const std::string_view& str, T& out,
+ bool& fullMatch, int base = 10)
+{
+ auto result = std::from_chars(
+ str.data(), std::next(str.begin(), str.size()), out, base);
+
+ fullMatch = result.ptr == std::next(str.begin(), str.size());
+
+ return result;
+}