diff options
Diffstat (limited to 'include/fud_string_view.hpp')
-rw-r--r-- | include/fud_string_view.hpp | 17 |
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 |