From 8b0bc70db73b48d833a3b5791e55921768cf6932 Mon Sep 17 00:00:00 2001 From: Dominick Allen Date: Mon, 31 Mar 2025 08:33:08 -0500 Subject: Remove reinterpret_cast usage in favor of std::bit_cast. --- include/fud_string_view.hpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'include/fud_string_view.hpp') 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(input)} + m_data{std::bit_cast(&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(strData)} + m_data{std::bit_cast(&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(input)}; + return StringView{N - 1, std::bit_cast(&input[0])}; } - [[nodiscard]] std::string_view as_string_view() const { - // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) - return std::string_view{reinterpret_cast(m_data), m_length}; + [[nodiscard]] constexpr std::string_view as_string_view() const { + return std::string_view{std::bit_cast(m_data), m_length}; } [[nodiscard]] constexpr Span asSpan() const @@ -106,8 +102,7 @@ struct StringView { [[nodiscard]] const char* c_str() const { - // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) - return reinterpret_cast(m_data); + return std::bit_cast(m_data); } constexpr const utf8& operator[](size_t index) const -- cgit v1.2.3