Both are equivalent in that they return the length of the null-terminated character sequence. Are there reasons of preferring one to the other?
Use the simpler alternative. std::char_traits::length
is great and all, but for C strings it does the same and is much longer code.
Do yourself a favour and avoid code bloat. I’m a huge fan of C++ functions over C equivalent (e.g. I will never use std::strcpy
or std::memcpy
, there’s a perfectly fine std::copy
). But avoiding std::strlen
is just silly.
One reason to use C++ functions exclusively is interface uniformity: for instance, both std::strcpy
and std::memcpy
have atrocious interfaces. However, std::strlen
is a perfectly fine algorithm in the best tradition of C++. It doesn’t generalise, true, but the neither do other class-specific free functions found in the standard library.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With