16#ifndef RAPIDJSON_INTERNAL_STRFUNC_H_ 
   17#define RAPIDJSON_INTERNAL_STRFUNC_H_ 
   40inline SizeType StrLen(
const char* s) {
 
   45inline SizeType StrLen(
const wchar_t* s) {
 
   56inline int StrCmp(
const Ch* s1, 
const Ch* s2) {
 
   59    while(*s1 && (*s1 == *s2)) { s1++; s2++; }
 
   60    return static_cast<unsigned>(*s1) < 
static_cast<unsigned>(*s2) ? -1 : 
static_cast<unsigned>(*s1) > 
static_cast<unsigned>(*s2);
 
   64template<
typename Encoding>
 
   65bool CountStringCodePoint(
const typename Encoding::Ch* s, 
SizeType length, 
SizeType* outCount) {
 
   68    GenericStringStream<Encoding> is(s);
 
   69    const typename Encoding::Ch* end = s + length;
 
   71    while (is.src_ < end) {
 
   73        if (!Encoding::Decode(is, &codepoint))
 
#define RAPIDJSON_ASSERT(x)
Assertion.
 
#define RAPIDJSON_NAMESPACE_BEGIN
provide custom rapidjson namespace (opening expression)
 
#define RAPIDJSON_NAMESPACE_END
provide custom rapidjson namespace (closing expression)
 
RAPIDJSON_NAMESPACE_BEGIN typedef unsigned SizeType
Size type (for string lengths, array sizes, etc.)