15 #ifndef RAPIDJSON_STRINGBUFFER_H_ 16 #define RAPIDJSON_STRINGBUFFER_H_ 21 #if RAPIDJSON_HAS_CXX11_RVALUE_REFS 27 #if defined(__clang__) 29 RAPIDJSON_DIAG_OFF(c++98-compat)
40 template <
typename Encoding,
typename Allocator = CrtAllocator>
47 #if RAPIDJSON_HAS_CXX11_RVALUE_REFS 63 *
stack_.template Push<Ch>() =
'\0';
65 stack_.template Pop<Ch>(1);
75 *
stack_.template Push<Ch>() =
'\0';
76 stack_.template Pop<Ch>(1);
78 return stack_.template Bottom<Ch>();
99 template<
typename Encoding,
typename Allocator>
104 template<
typename Encoding,
typename Allocator>
112 std::memset(stream.stack_.Push<
char>(n), c, n *
sizeof(c));
117 #if defined(__clang__) 121 #endif // RAPIDJSON_STRINGBUFFER_H_ void PutReserve(GenericStringBuffer< Encoding, Allocator > &stream, size_t count)
Represents an in-memory output stream.
static const size_t kDefaultCapacity
size_t GetSize() const
Get the size of string in bytes in the string buffer.
void PutN(GenericStringBuffer< UTF8<> > &stream, char c, size_t n)
Implement specialized version of PutN() with memset() for better performance.
GenericStringBuffer< UTF8<> > StringBuffer
String buffer with UTF8 encoding.
#define RAPIDJSON_NAMESPACE_BEGIN
provide custom rapidjson namespace (opening expression)
size_t GetLength() const
Get the length of string in Ch in the string buffer.
Ch * PushUnsafe(size_t count)
mdb_size_t count(MDB_cursor *cur)
void Reserve(size_t count)
void PutUnsafe(GenericStringBuffer< Encoding, Allocator > &stream, typename Encoding::Ch c)
#define RAPIDJSON_NAMESPACE_END
provide custom rapidjson namespace (closing expression)
A type-unsafe stack for storing different types of data.
internal::Stack< Allocator > stack_
const T & move(const T &t)
const Ch * GetString() const
GenericStringBuffer(Allocator *allocator=0, size_t capacity=kDefaultCapacity)