xieite ::strlen ()
Defined in header <xieite/data/strlen.hpp>
A
constexpr
(and slightly more general) replacement for std ::strlen ()
.Declaration
#0template <typename Char > [[nodiscard ]]constexpr std ::size_t strlen (std ::basic_string_view <Char >strv )noexcept ;
#1
template <typename Char > [[nodiscard ]]constexpr std ::size_t strlen (const std ::basic_string <Char >& str )noexcept ;
#2
Returnstemplate <xieite ::is_char Char ,std ::size_t length > [[nodiscard ]]constexpr std ::size_t strlen (const xieite ::paren <Char [length ]>& )noexcept ;
length - !!length
. The compiler should prefer this overload for string literals.#3
Invokes undefined behavior if the passed string is not null-terminated.template <typename Str >requires (xieite ::is_ptr <Str > &&xieite ::is_char <std ::remove_pointer_t <Str >>) [[nodiscard ]]constexpr std ::size_t strlen (Str str )noexcept ;
#4
Always returnstemplate <xieite ::is_char Char > [[nodiscard ]]constexpr std ::size_t strlen (Char )noexcept ;
1
.Example
Output:int main () {xieite ::dump (xieite ::strlen ("abcdef" )); }
[View in Compiler Explorer]6