rapidjson 命名空间参考

main RapidJSON namespace 更多...

class  Allocator
 Concept for allocating, resizing and freeing memory block. 更多...
 
struct  ASCII
 ASCII encoding. 更多...
 
struct  AutoUTF
 Dynamically select encoding according to stream's runtime-specified UTF encoding type. 更多...
 
class  AutoUTFInputStream
 Input stream wrapper with dynamically bound encoding and automatic encoding detection. 更多...
 
class  AutoUTFOutputStream
 Output stream wrapper with dynamically bound encoding and automatic encoding detection. 更多...
 
struct  BaseReaderHandler
 Default implementation of Handler. 更多...
 
class  BasicIStreamWrapper
 Wrapper of std::basic_istream into RapidJSON's Stream concept. 更多...
 
class  BasicOStreamWrapper
 Wrapper of std::basic_ostream into RapidJSON's Stream concept. 更多...
 
class  CrtAllocator
 C-runtime library allocator. 更多...
 
class  CursorStreamWrapper
 Cursor stream wrapper for counting line and column number if error exists. 更多...
 
class  EncodedInputStream
 Input byte stream wrapper with a statically bound encoding. 更多...
 
class  EncodedInputStream< UTF8<>, MemoryStream >
 Specialized for UTF8 MemoryStream. 更多...
 
class  EncodedOutputStream
 Output byte stream wrapper with statically bound encoding. 更多...
 
class  Encoding
 Concept for encoding of Unicode characters. 更多...
 
class  FileReadStream
 File byte stream for input using fread(). 更多...
 
class  FileWriteStream
 Wrapper of C file stream for input using fread(). 更多...
 
class  GenericArray
 Helper class for accessing Value of array type. 更多...
 
class  GenericDocument
 A document for parsing JSON text as DOM. 更多...
 
struct  GenericInsituStringStream
 A read-write string stream. 更多...
 
struct  GenericMember
 Name-value pair in a JSON object value. 更多...
 
class  GenericMemberIterator
 (Constant) member iterator for a JSON object value 更多...
 
struct  GenericMemoryBuffer
 Represents an in-memory output byte stream. 更多...
 
class  GenericObject
 Helper class for accessing Value of object type. 更多...
 
class  GenericPointer
 Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. 更多...
 
class  GenericReader
 SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. 更多...
 
class  GenericSchemaDocument
 JSON schema document. 更多...
 
class  GenericSchemaValidator
 JSON Schema Validator. 更多...
 
class  GenericStreamWrapper
 A Stream Wrapper 更多...
 
class  GenericStringBuffer
 Represents an in-memory output stream. 更多...
 
struct  GenericStringRef
 Reference to a constant string (not taking a copy) 更多...
 
struct  GenericStringStream
 Read-only string stream. 更多...
 
class  GenericValue
 Represents a JSON value. Use Value for UTF8 encoding and default allocator. 更多...
 
class  Handler
 Concept for receiving events from GenericReader upon parsing. The functions return true if no error occurs. If they return false, the event publisher should terminate the process. 更多...
 
class  IGenericRemoteSchemaDocumentProvider
 
class  MemoryPoolAllocator
 Default memory allocator used by the parser and DOM. 更多...
 
struct  MemoryStream
 Represents an in-memory input byte stream. 更多...
 
struct  ParseResult
 Result of parsing (wraps ParseErrorCode) 更多...
 
class  PrettyWriter
 Writer with indentation and spacing. 更多...
 
class  SchemaValidatingReader
 A helper class for parsing with validation. 更多...
 
class  Stream
 Concept for reading and writing characters. 更多...
 
struct  StreamTraits
 Provides additional information for stream. 更多...
 
struct  StreamTraits< GenericInsituStringStream< Encoding > >
 
struct  StreamTraits< GenericStringStream< Encoding > >
 
struct  Transcoder
 Encoding conversion. 更多...
 
struct  Transcoder< Encoding, Encoding >
 Specialization of Transcoder with same source and target encoding. 更多...
 
struct  UTF16
 UTF-16 encoding. 更多...
 
struct  UTF16BE
 UTF-16 big endian encoding. 更多...
 
struct  UTF16LE
 UTF-16 little endian encoding. 更多...
 
struct  UTF32
 UTF-32 encoding. 更多...
 
struct  UTF32BE
 UTF-32 big endian encoding. 更多...
 
struct  UTF32LE
 UTF-32 little endian enocoding. 更多...
 
struct  UTF8
 UTF-8 encoding. 更多...
 
class  Writer
 JSON writer 更多...
 

类型定义

typedef unsigned SizeType
 Size type (for string lengths, array sizes, etc.) 更多...
 
typedef GenericValue< UTF8<> > Value
 GenericValue with UTF8 encoding
 
typedef GenericDocument< UTF8<> > Document
 GenericDocument with UTF8 encoding
 
typedef const RAPIDJSON_ERROR_CHARTYPE *(* GetParseErrorFunc) (ParseErrorCode)
 Function pointer type of GetParseError(). 更多...
 
typedef GenericStringStream< UTF8< char > > StringStream
 String stream with UTF8 encoding.
 
typedef GenericInsituStringStream< UTF8< char > > InsituStringStream
 Insitu string stream with UTF8 encoding.
 
typedef GenericStringBuffer< UTF8< char >, CrtAllocatorStringBuffer
 String buffer with UTF8 encoding
 
typedef GenericMemoryBuffer< CrtAllocatorMemoryBuffer
 
typedef GenericReader< UTF8< char >, UTF8< char >, CrtAllocatorReader
 Reader with UTF8 encoding and default allocator.
 
typedef GenericPointer< Value, CrtAllocatorPointer
 GenericPointer for Value (UTF-8, default allocator).
 
typedef GenericSchemaDocument< Value, CrtAllocatorSchemaDocument
 GenericSchemaDocument using Value type.
 
typedef IGenericRemoteSchemaDocumentProvider< SchemaDocumentIRemoteSchemaDocumentProvider
 IGenericRemoteSchemaDocumentProvider using SchemaDocument.
 
typedef GenericSchemaValidator< SchemaDocument, BaseReaderHandler< UTF8< char >, void >, CrtAllocatorSchemaValidator
 
typedef BasicIStreamWrapper< std::istream > IStreamWrapper
 
typedef BasicIStreamWrapper< std::wistream > WIStreamWrapper
 
typedef BasicOStreamWrapper< std::ostream > OStreamWrapper
 
typedef BasicOStreamWrapper< std::wostream > WOStreamWrapper
 

枚举

enum  Type {
  kNullType = 0, kFalseType = 1, kTrueType = 2, kObjectType = 3,
  kArrayType = 4, kStringType = 5, kNumberType = 6
}
 Type of JSON value 更多...
 
enum  UTFType {
  kUTF8 = 0, kUTF16LE = 1, kUTF16BE = 2, kUTF32LE = 3,
  kUTF32BE = 4
}
 Runtime-specified UTF encoding type of a stream. 更多...
 
enum  ParseErrorCode {
  kParseErrorNone = 0, kParseErrorDocumentEmpty, kParseErrorDocumentRootNotSingular, kParseErrorValueInvalid,
  kParseErrorObjectMissName, kParseErrorObjectMissColon, kParseErrorObjectMissCommaOrCurlyBracket, kParseErrorArrayMissCommaOrSquareBracket,
  kParseErrorStringUnicodeEscapeInvalidHex, kParseErrorStringUnicodeSurrogateInvalid, kParseErrorStringEscapeInvalid, kParseErrorStringMissQuotationMark,
  kParseErrorStringInvalidEncoding, kParseErrorNumberTooBig, kParseErrorNumberMissFraction, kParseErrorNumberMissExponent,
  kParseErrorTermination, kParseErrorUnspecificSyntaxError
}
 Error code of parsing. 更多...
 
enum  PointerParseErrorCode {
  kPointerParseErrorNone = 0, kPointerParseErrorTokenMustBeginWithSolidus, kPointerParseErrorInvalidEscape, kPointerParseErrorInvalidPercentEncoding,
  kPointerParseErrorCharacterMustPercentEncode
}
 Error code of parsing. 更多...
 
enum  PrettyFormatOptions { kFormatDefault = 0, kFormatSingleLineArray = 1 }
 Combination of PrettyWriter format flags. 更多...
 
enum  ParseFlag {
  kParseNoFlags = 0, kParseInsituFlag = 1, kParseValidateEncodingFlag = 2, kParseIterativeFlag = 4,
  kParseStopWhenDoneFlag = 8, kParseFullPrecisionFlag = 16, kParseCommentsFlag = 32, kParseNumbersAsStringsFlag = 64,
  kParseTrailingCommasFlag = 128, kParseNanAndInfFlag = 256, kParseDefaultFlags = RAPIDJSON_PARSE_DEFAULT_FLAGS
}
 Combination of parseFlags 更多...
 
enum  WriteFlag { kWriteNoFlags = 0, kWriteValidateEncodingFlag = 1, kWriteNanAndInfFlag = 2, kWriteDefaultFlags = RAPIDJSON_WRITE_DEFAULT_FLAGS }
 Combination of writeFlags 更多...
 

函数

template<typename CharType >
GenericStringRef< CharType > StringRef (const CharType *str)
 Mark a character pointer as constant string 更多...
 
template<typename CharType >
GenericStringRef< CharType > StringRef (const CharType *str, size_t length)
 Mark a character pointer as constant string 更多...
 
template<typename CharType >
GenericStringRef< CharType > StringRef (const std::basic_string< CharType > &str)
 Mark a string object as constant string 更多...
 
template<typename Stream >
void PutUnsafe (Stream &stream, typename Stream::Ch c)
 Write character to a stream, presuming buffer is reserved.
 
const RAPIDJSON_ERROR_CHARTYPEGetParseError_En (ParseErrorCode parseErrorCode)
 Maps error code of parsing into error message. 更多...
 
template<>
void PutN (FileWriteStream &stream, char c, size_t n)
 Implement specialized version of PutN() with memset() for better performance.
 
template<>
void PutN (MemoryBuffer &memoryBuffer, char c, size_t n)
 Implement specialized version of PutN() with memset() for better performance.
 
template<typename InputStream >
void SkipWhitespace (InputStream &is)
 Skip the JSON white spaces in a stream. 更多...
 
const char * SkipWhitespace (const char *p, const char *end)
 
template<>
void SkipWhitespace (InsituStringStream &is)
 Template function specialization for InsituStringStream
 
template<>
void SkipWhitespace (StringStream &is)
 Template function specialization for StringStream
 
template<>
void SkipWhitespace (EncodedInputStream< UTF8<>, MemoryStream > &is)
 
template<typename Stream >
void PutReserve (Stream &stream, size_t count)
 Reserve n characters for writing to a stream.
 
template<typename Stream , typename Ch >
void PutN (Stream &stream, Ch c, size_t n)
 Put N copies of a character to a stream.
 
template<typename Encoding , typename Allocator >
void PutReserve (GenericStringBuffer< Encoding, Allocator > &stream, size_t count)
 
template<typename Encoding , typename Allocator >
void PutUnsafe (GenericStringBuffer< Encoding, Allocator > &stream, typename Encoding::Ch c)
 
template<>
void PutN (GenericStringBuffer< UTF8<> > &stream, char c, size_t n)
 Implement specialized version of PutN() with memset() for better performance.
 
Helper functions for GenericPointer
template<typename T >
T::ValueType & CreateValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & CreateValueByPointer (T &root, const CharType(&source)[N], typename T::AllocatorType &a)
 
template<typename DocumentType >
DocumentType::ValueType & CreateValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & CreateValueByPointer (DocumentType &document, const CharType(&source)[N])
 
template<typename T >
T::ValueType * GetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, size_t *unresolvedTokenIndex=0)
 
template<typename T >
const T::ValueType * GetValueByPointer (const T &root, const GenericPointer< typename T::ValueType > &pointer, size_t *unresolvedTokenIndex=0)
 
template<typename T , typename CharType , size_t N>
T::ValueType * GetValueByPointer (T &root, const CharType(&source)[N], size_t *unresolvedTokenIndex=0)
 
template<typename T , typename CharType , size_t N>
const T::ValueType * GetValueByPointer (const T &root, const CharType(&source)[N], size_t *unresolvedTokenIndex=0)
 
template<typename T >
T::ValueType & GetValueByPointerWithDefault (T &root, const GenericPointer< typename T::ValueType > &pointer, const typename T::ValueType &defaultValue, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & GetValueByPointerWithDefault (T &root, const GenericPointer< typename T::ValueType > &pointer, const typename T::Ch *defaultValue, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & GetValueByPointerWithDefault (T &root, const GenericPointer< typename T::ValueType > &pointer, const std::basic_string< typename T::Ch > &defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename T2 >
T::ValueType & GetValueByPointerWithDefault (T &root, const GenericPointer< typename T::ValueType > &pointer, T2 defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & GetValueByPointerWithDefault (T &root, const CharType(&source)[N], const typename T::ValueType &defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & GetValueByPointerWithDefault (T &root, const CharType(&source)[N], const typename T::Ch *defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & GetValueByPointerWithDefault (T &root, const CharType(&source)[N], const std::basic_string< typename T::Ch > &defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N, typename T2 >
T::ValueType & GetValueByPointerWithDefault (T &root, const CharType(&source)[N], T2 defaultValue, typename T::AllocatorType &a)
 
template<typename DocumentType >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const typename DocumentType::ValueType &defaultValue)
 
template<typename DocumentType >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const typename DocumentType::Ch *defaultValue)
 
template<typename DocumentType >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const std::basic_string< typename DocumentType::Ch > &defaultValue)
 
template<typename DocumentType , typename T2 >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, T2 defaultValue)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const CharType(&source)[N], const typename DocumentType::ValueType &defaultValue)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const CharType(&source)[N], const typename DocumentType::Ch *defaultValue)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const CharType(&source)[N], const std::basic_string< typename DocumentType::Ch > &defaultValue)
 
template<typename DocumentType , typename CharType , size_t N, typename T2 >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const CharType(&source)[N], T2 defaultValue)
 
template<typename T >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, const typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, const typename T::Ch *value, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, const std::basic_string< typename T::Ch > &value, typename T::AllocatorType &a)
 
template<typename T , typename T2 >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, T2 value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], const typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], const typename T::Ch *value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], const std::basic_string< typename T::Ch > &value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N, typename T2 >
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], T2 value, typename T::AllocatorType &a)
 
template<typename DocumentType >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, typename DocumentType::ValueType &value)
 
template<typename DocumentType >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const typename DocumentType::ValueType &value)
 
template<typename DocumentType >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const typename DocumentType::Ch *value)
 
template<typename DocumentType >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const std::basic_string< typename DocumentType::Ch > &value)
 
template<typename DocumentType , typename T2 >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, T2 value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], typename DocumentType::ValueType &value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], const typename DocumentType::ValueType &value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], const typename DocumentType::Ch *value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], const std::basic_string< typename DocumentType::Ch > &value)
 
template<typename DocumentType , typename CharType , size_t N, typename T2 >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], T2 value)
 
template<typename T >
T::ValueType & SwapValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SwapValueByPointer (T &root, const CharType(&source)[N], typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename DocumentType >
DocumentType::ValueType & SwapValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, typename DocumentType::ValueType &value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SwapValueByPointer (DocumentType &document, const CharType(&source)[N], typename DocumentType::ValueType &value)
 
template<typename T >
bool EraseValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer)
 
template<typename T , typename CharType , size_t N>
bool EraseValueByPointer (T &root, const CharType(&source)[N])
 

详细描述

main RapidJSON namespace

参见
RAPIDJSON_NAMESPACE

类型定义说明

◆ SizeType

typedef unsigned rapidjson::SizeType

Size type (for string lengths, array sizes, etc.)

RapidJSON uses 32-bit array/string indices even on 64-bit platforms, instead of using size_t. Users may override the SizeType by defining RAPIDJSON_NO_SIZETYPEDEFINE.

枚举类型说明

◆ ParseFlag

Combination of parseFlags

参见
Reader::Parse, Document::Parse, Document::ParseInsitu, Document::ParseStream
枚举值
kParseNoFlags 

No flags are set.

kParseInsituFlag 

In-situ(destructive) parsing.

kParseValidateEncodingFlag 

Validate encoding of JSON strings.

kParseIterativeFlag 

Iterative(constant complexity in terms of function call stack size) parsing.

kParseStopWhenDoneFlag 

After parsing a complete JSON root from stream, stop further processing the rest of stream. When this flag is used, parser will not generate kParseErrorDocumentRootNotSingular error.

kParseFullPrecisionFlag 

Parse number in full precision (but slower).

kParseCommentsFlag 

Allow one-line (//) and multi-line (/**/) comments.

kParseNumbersAsStringsFlag 

Parse all numbers (ints/doubles) as strings.

kParseTrailingCommasFlag 

Allow trailing commas at the end of objects and arrays.

kParseNanAndInfFlag 

Allow parsing NaN, Inf, Infinity, -Inf and -Infinity as doubles.

kParseDefaultFlags 

Default parse flags. Can be customized by defining RAPIDJSON_PARSE_DEFAULT_FLAGS

◆ PrettyFormatOptions

Combination of PrettyWriter format flags.

参见
PrettyWriter::SetFormatOptions
枚举值
kFormatDefault 

Default pretty formatting.

kFormatSingleLineArray 

Format arrays on a single line.

◆ Type

Type of JSON value

枚举值
kNullType 

null

kFalseType 

false

kTrueType 

true

kObjectType 

object

kArrayType 

array

kStringType 

string

kNumberType 

number

◆ UTFType

Runtime-specified UTF encoding type of a stream.

枚举值
kUTF8 

UTF-8.

kUTF16LE 

UTF-16 little endian.

kUTF16BE 

UTF-16 big endian.

kUTF32LE 

UTF-32 little endian.

kUTF32BE 

UTF-32 big endian.

◆ WriteFlag

Combination of writeFlags

枚举值
kWriteNoFlags 

No flags are set.

kWriteValidateEncodingFlag 

Validate encoding of JSON strings.

kWriteNanAndInfFlag 

Allow writing of Infinity, -Infinity and NaN.

kWriteDefaultFlags 

Default write flags. Can be customized by defining RAPIDJSON_WRITE_DEFAULT_FLAGS

函数说明

◆ SkipWhitespace()

template<typename InputStream >
void rapidjson::SkipWhitespace ( InputStream &  is)

Skip the JSON white spaces in a stream.

参数
isA input stream for skipping white spaces.
注解
This function has SSE2/SSE4.2 specialization.

◆ StringRef() [1/3]

template<typename CharType >
GenericStringRef< CharType > StringRef ( const CharType *  str)
inline

Mark a character pointer as constant string

Mark a plain character pointer as a "string literal". This function can be used to avoid copying a character string to be referenced as a value in a JSON GenericValue object, if the string's lifetime is known to be valid long enough.

模板参数
CharTypeCharacter type of the string
参数
strConstant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
返回
GenericStringRef string reference object
参见
GenericValue::GenericValue(StringRefType), GenericValue::operator=(StringRefType), GenericValue::SetString(StringRefType), GenericValue::PushBack(StringRefType, Allocator&), GenericValue::AddMember

◆ StringRef() [2/3]

template<typename CharType >
GenericStringRef< CharType > StringRef ( const CharType *  str,
size_t  length 
)
inline

Mark a character pointer as constant string

Mark a plain character pointer as a "string literal". This function can be used to avoid copying a character string to be referenced as a value in a JSON GenericValue object, if the string's lifetime is known to be valid long enough.

This version has better performance with supplied length, and also supports string containing null characters.

模板参数
CharTypecharacter type of the string
参数
strConstant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
lengthThe length of source string.
返回
GenericStringRef string reference object

◆ StringRef() [3/3]

template<typename CharType >
GenericStringRef< CharType > StringRef ( const std::basic_string< CharType > &  str)
inline

Mark a string object as constant string

Mark a string object (e.g. std::string) as a "string literal". This function can be used to avoid copying a string to be referenced as a value in a JSON GenericValue object, if the string's lifetime is known to be valid long enough.

模板参数
CharTypecharacter type of the string
参数
strConstant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
返回
GenericStringRef string reference object
注解
Requires the definition of the preprocessor symbol RAPIDJSON_HAS_STDSTRING.