summaryrefslogtreecommitdiff
path: root/include/fud_string_view.hpp
diff options
context:
space:
mode:
authorDominick Allen <djallen@librehumanitas.org>2025-03-31 08:33:08 -0500
committerDominick Allen <djallen@librehumanitas.org>2025-03-31 08:33:08 -0500
commit8b0bc70db73b48d833a3b5791e55921768cf6932 (patch)
tree862ae34933a7fc9f480038d974f59d7683a82605 /include/fud_string_view.hpp
parentc426110f24516f92ecb8a5374e2a281f2c79787a (diff)
Remove reinterpret_cast usage in favor of std::bit_cast.
Diffstat (limited to 'include/fud_string_view.hpp')
-rw-r--r--include/fud_string_view.hpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/include/fud_string_view.hpp b/include/fud_string_view.hpp
index f71919d..e3ff4d7 100644
--- a/include/fud_string_view.hpp
+++ b/include/fud_string_view.hpp
@@ -56,16 +56,14 @@ struct StringView {
// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays)
StringView(const char (&input)[N]) :
m_length{N - 1},
- // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
- m_data{reinterpret_cast<const utf8*>(input)}
+ m_data{std::bit_cast<const utf8*>(&input[0])}
{
static_assert(N > 0);
}
StringView(size_t strLen, const char* strData) :
m_length(strLen),
- // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
- m_data{reinterpret_cast<const utf8*>(strData)}
+ m_data{std::bit_cast<const utf8*>(&strData[0])}
{
}
@@ -80,13 +78,11 @@ struct StringView {
constexpr static StringView makeFromCString(const char (&input)[N])
{
static_assert(N > 0);
- // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
- return StringView{N - 1, reinterpret_cast<const utf8*>(input)};
+ return StringView{N - 1, std::bit_cast<const utf8*>(&input[0])};
}
- [[nodiscard]] std::string_view as_string_view() const {
- // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
- return std::string_view{reinterpret_cast<const char*>(m_data), m_length};
+ [[nodiscard]] constexpr std::string_view as_string_view() const {
+ return std::string_view{std::bit_cast<const char*>(m_data), m_length};
}
[[nodiscard]] constexpr Span<const utf8> asSpan() const
@@ -106,8 +102,7 @@ struct StringView {
[[nodiscard]] const char* c_str() const
{
- // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
- return reinterpret_cast<const char*>(m_data);
+ return std::bit_cast<const char*>(m_data);
}
constexpr const utf8& operator[](size_t index) const