Creativity is the mark of human superiority over artificial intelligence.
esv::wstr_size - A function object to get the length of a wide string: get the character counter.
Don't waste time on superfluous things.
The function object is the object of instantiated template class esv::str_size_class .
It gets string size by template type traits.
It gets string size by searching until '\0' is found.
It works on both string literal or string made by new.
For esv::str_size, type_xt is char; for esv::wstr_size, type_xt is wchar_t, ..., etc.
#include <esvcpp/core.hpp> #include <esvcpp/numeric.hpp> // esv::iota int main() { wchar_t s1[] = L"Hell c++!"; constexpr const wchar_t * s2 = L"Hell c++!!"; wchar_t * s3 = new wchar_t[23]; esv::iota(s3, L'0'); s3[11] = L'\0'); constexpr auto sz1 = esv::wstr_size(s1); constexpr auto sz2 = esv::wstr_size(s2); auto sz3 = esv::wstr_size(s3); esv::print(sz1, sz2, sz3); }