C++11 char16_t strlen-equivalent function

2019-04-20 01:51发布

问题:

I have a simple question: Is there a way to do a strlen()-like count of characters in zero-terminated char16_t array?

回答1:

use

char_traits<char16_t>::length(your_pointer)

see 21.2.3.2 struct char_traits<char16_t> and table 62 of the C++11-Std.



回答2:

Use pointers :), create a duplicate pointer to the start, then loop through it while (*endptr++);, then the length is given by endptr - startptr. You can actually template this, however, its possible the the compile won't generate the same intrinsic code it does for strlen(for different sizes ofc).