Reference to a constant string (not taking a copy) Plus de détails...
#include <arcane/utils/internal/json/rapidjson/document.h>
Types publics | |
typedef CharType | Ch |
character type of the string | |
Fonctions membres publiques | |
template<SizeType N> | |
GenericStringRef (const CharType(&str)[N]) RAPIDJSON_NOEXCEPT | |
Create string reference from const character array. | |
GenericStringRef (const CharType *str) | |
Explicitly create string reference from const character pointer. | |
GenericStringRef (const CharType *str, SizeType len) | |
Create constant string reference from pointer and length. | |
GenericStringRef (const GenericStringRef &rhs) | |
operator const Ch * () const | |
implicit conversion to plain CharType pointer | |
Attributs publics | |
const Ch *const | s |
plain CharType pointer | |
const SizeType | length |
length of the string (excluding the trailing NULL terminator) | |
Fonctions membres privées | |
SizeType | NotNullStrLen (const CharType *str) |
template<SizeType N> | |
GenericStringRef (CharType(&str)[N]) | |
Disallow construction from non-const array. | |
GenericStringRef & | operator= (const GenericStringRef &rhs) |
Copy assignment operator not permitted - immutable type. | |
Attributs privés statiques | |
static const Ch | emptyString [] = { CharType() } |
Empty string - used when passing in a NULL pointer. | |
Fonctions associées | |
(Notez que ce ne sont pas des fonctions membres) | |
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. | |
Reference to a constant string (not taking a copy)
CharType | character type of the string |
This helper class is used to automatically infer constant string references for string literals, especially from const
(!) character arrays.
The main use is for creating JSON string values without copying the source string via an Allocator. This requires that the referenced string pointers have a sufficient lifetime, which exceeds the lifetime of the associated GenericValue.
Example
Définition à la ligne 287 du fichier document.h.
typedef CharType GenericStringRef< CharType >::Ch |
character type of the string
Définition à la ligne 288 du fichier document.h.
|
inline |
Create string reference from const
character array.
This constructor implicitly creates a constant string reference from a const
character array. It has better performance than StringRef(const CharType*) by inferring the string length from the array length, and also supports strings containing null characters.
N | length of the string, automatically inferred |
str | Constant character array, lifetime assumed to be longer than the use of the string in e.g. a GenericValue |
snprintf
are excluded from consideration. In such cases, the referenced string should be copied to the GenericValue instead. Définition à la ligne 316 du fichier document.h.
|
inlineexplicit |
Explicitly create string reference from const
character pointer.
This constructor can be used to explicitly create a reference to a constant string pointer.
str | Constant character pointer, lifetime assumed to be longer than the use of the string in e.g. a GenericValue |
snprintf
are excluded from consideration. In such cases, the referenced string should be copied to the GenericValue instead. Définition à la ligne 340 du fichier document.h.
|
inline |
Create constant string reference from pointer and length.
str | constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue |
len | length of the string, excluding the trailing NULL terminator |
Définition à la ligne 352 du fichier document.h.
Références RAPIDJSON_ASSERT.
|
inline |
Définition à la ligne 355 du fichier document.h.
|
inlineprivate |
Définition à la ligne 364 du fichier document.h.
|
inline |
implicit conversion to plain CharType pointer
Définition à la ligne 358 du fichier document.h.
Références GenericStringRef< CharType >::s.
|
related |
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.
CharType | Character type of the string |
str | Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue |
Définition à la ligne 395 du fichier document.h.
|
related |
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.
CharType | character type of the string |
str | Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue |
length | The length of source string. |
Définition à la ligne 415 du fichier document.h.
Références SizeType.
|
staticprivate |
Empty string - used when passing in a NULL pointer.
Définition à la ligne 370 du fichier document.h.
const SizeType GenericStringRef< CharType >::length |
length of the string (excluding the trailing NULL terminator)
Définition à la ligne 361 du fichier document.h.
Référencé par GenericValue< Encoding, Allocator >::SetStringRaw().
const Ch* const GenericStringRef< CharType >::s |
plain CharType pointer
Définition à la ligne 360 du fichier document.h.
Référencé par GenericStringRef< CharType >::operator const Ch *().