rapidjson
A fast JSON parser/generator for C++ with both SAX/DOM style API
 All Classes Functions Variables Typedefs Pages
strfunc.h
1 #ifndef RAPIDJSON_INTERNAL_STRFUNC_H_
2 #define RAPIDJSON_INTERNAL_STRFUNC_H_
3 
4 namespace rapidjson {
5 namespace internal {
6 
7 //! Custom strlen() which works on different character types.
8 /*! \tparam Ch Character type (e.g. char, wchar_t, short)
9  \param s Null-terminated input string.
10  \return Number of characters in the string.
11  \note This has the same semantics as strlen(), the return value is not number of Unicode codepoints.
12 */
13 template <typename Ch>
14 inline SizeType StrLen(const Ch* s) {
15  const Ch* p = s;
16  while (*p != '\0')
17  ++p;
18  return SizeType(p - s);
19 }
20 
21 } // namespace internal
22 } // namespace rapidjson
23 
24 #endif // RAPIDJSON_INTERNAL_STRFUNC_H_