8#ifndef INCLUDED_BDLJSN_JSON
9#define INCLUDED_BDLJSN_JSON
223/#include <bdlscm_version.h>
267#include <bsl_iterator.h>
268#include <bsl_unordered_map.h>
269#include <bsl_vector.h>
318 template <
class HASHALG>
375 template <
class INPUT_ITERATOR>
380#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
386 JsonArray(std::initializer_list<Json> elements,
408#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
420 void assign(std::initializer_list<Json> initializer);
441 template <
class INPUT_ITERATOR>
442 void assign(INPUT_ITERATOR first, INPUT_ITERATOR last);
529 template <
class INPUT_ITERATOR>
531 INPUT_ITERATOR first,
532 INPUT_ITERATOR last);
566 template <
class INPUT_ITERATOR>
568 INPUT_ITERATOR first,
569 INPUT_ITERATOR last);
593 void resize(bsl::size_t count);
602 void resize(bsl::size_t count,
const Json& json);
680 int spacesPerLevel = 4) const;
713template <class HASHALG>
768 template <
class HASHALG>
826 template <
class INPUT_ITERATOR>
831#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
840 JsonObject(std::initializer_list<Member> members,
859#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
958 template <class INPUT_ITERATOR>
959 typename
bsl::enable_if<!
bsl::is_convertible<INPUT_ITERATOR,
960 bsl::string_view>::value,
962 insert(INPUT_ITERATOR first, INPUT_ITERATOR last);
964#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
970 void insert(std::initializer_list<Member> members);
982 template <
class VALUE>
1025 bool contains(const
bsl::string_view& key) const;
1060 int spacesPerLevel = 4) const;
1091template <class HASHALG>
1114 Variant<JsonObject, JsonArray, bsl::string, JsonNumber, bool, JsonNull>
1131 template <
class HASHALG>
1268 template <
class STRING_TYPE>
1335 template <
class STRING_TYPE>
1403 bool& makeBoolean();
1404 bool& makeBoolean(
bool boolean);
1433 void makeString(
const char *
string);
1451 template <
class STRING_TYPE>
1491#if defined(BSLS_COMPILERFEATURES_SUPPORT_OPERATOR_EXPLICIT)
1500 explicit operator bool &();
1551 int asInt(
int *result)
const;
1553 int asUint(
unsigned int *result)
const;
1560 float asFloat()
const;
1561 double asDouble()
const;
1580 bool isArray()
const;
1584 bool isBoolean()
const;
1588 bool isNull()
const;
1592 bool isNumber()
const;
1596 bool isObject()
const;
1600 bool isString()
const;
1610 const bool& theBoolean()
const;
1640 const
Json& operator[](const
bsl::string_view& key) const;
1646 const
Json& operator[](
bsl::
size_t index) const;
1648#if defined(BSLS_COMPILERFEATURES_SUPPORT_OPERATOR_EXPLICIT)
1652 explicit operator const JsonArray &()
const;
1657 explicit operator const bool &()
const;
1662 explicit operator const JsonNull &()
const;
1667 explicit operator const JsonNumber &()
const;
1672 explicit operator const JsonObject &()
const;
1683 bsl::size_t
size()
const;
1705 int spacesPerLevel = 4) const;
1718bsl::ostream& operator<<(
bsl::ostream& stream, const
Json&
object);
1734template <class HASHALG>
1761: d_elements(basicAllocator)
1768: d_elements(original.d_elements, basicAllocator)
1783: d_elements(basicAllocator)
1787 if (basicAllocator == originalAsLvalue.
allocator()) {
1791 d_elements = originalAsLvalue.d_elements;
1795template <
class INPUT_ITERATOR>
1798 INPUT_ITERATOR last,
1800: d_elements(first, last, basicAllocator)
1804#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
1808: d_elements(elements, basicAllocator)
1817 d_elements = rhs.d_elements;
1829#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
1833 d_elements = initializer;
1842 return d_elements[index];
1845template <
class INPUT_ITERATOR>
1849 d_elements.
assign(first, last);
1852#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
1856 d_elements.
assign(initializer);
1863 return d_elements.
back();
1869 return d_elements.
begin();
1881 return d_elements.
end();
1887 return d_elements.
erase(d_elements.
begin() + index);
1893 return d_elements.
erase(position);
1899 return d_elements.
erase(first, last);
1905 return d_elements.
front();
1911 return d_elements.
insert(d_elements.
begin() + index, json);
1918 return d_elements.
insert(d_elements.
begin() + index,
1922template <
class INPUT_ITERATOR>
1925 INPUT_ITERATOR first,
1926 INPUT_ITERATOR last)
1928 return d_elements.
insert(d_elements.
begin() + index, first, last);
1934 return d_elements.
insert(position, json);
1944template <
class INPUT_ITERATOR>
1947 INPUT_ITERATOR first,
1948 INPUT_ITERATOR last)
1950 return d_elements.
insert(position, first, last);
1974 d_elements.
resize(count);
1980 d_elements.
resize(count, json);
1987 d_elements.swap(other.d_elements);
1995 return d_elements[index];
2007 return d_elements.
back();
2013 return d_elements.
begin();
2019 return d_elements.
begin();
2025 return d_elements.
end();
2031 return d_elements.
empty();
2037 return d_elements.
end();
2043 return d_elements.
front();
2055 return d_elements.
size();
2071: d_members(basicAllocator)
2078: d_members(original.d_members, basicAllocator)
2093: d_members(basicAllocator)
2097 if (basicAllocator == originalAsLvalue.
allocator()) {
2101 d_members = originalAsLvalue.d_members;
2105template <
class INPUT_ITERATOR>
2108 INPUT_ITERATOR last,
2110: d_members(first, last, basicAllocator)
2112#ifdef BSLS_ASSERT_IS_ACTIVE
2114 iter != d_members.
end();
2117 iter->first.size()));
2122#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
2126: d_members(members, basicAllocator)
2128#ifdef BSLS_ASSERT_IS_ACTIVE
2130 iter != d_members.
end();
2133 iter->first.size()));
2143 d_members = rhs.d_members;
2155 d_members = rhsMembers;
2160#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
2164 d_members = members;
2175 if (it != d_members.
end()) {
2179#if defined(BSLS_LIBRARYFEATURES_HAS_CPP11_PAIR_PIECEWISE_CONSTRUCTOR)
2180 return d_members.
emplace(std::piecewise_construct,
2181 std::forward_as_tuple(key),
2182 std::forward_as_tuple())
2195 return d_members.
begin();
2207 return d_members.
end();
2214 if (it == d_members.
end()) {
2217 d_members.
erase(it);
2224 return d_members.
erase(position);
2230 return d_members.
erase(position);
2236 return d_members.
find(key);
2242 return d_members.
insert(member);
2249#ifdef BSLS_ASSERT_IS_ACTIVE
2256template <
class INPUT_ITERATOR>
2263 d_members.
insert(first, last);
2264#ifdef BSLS_ASSERT_SAFE_IS_ACTIVE
2266 iter != d_members.
end();
2274#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
2278#ifdef BSLS_ASSERT_IS_ACTIVE
2279 for (
auto member : members) {
2281 member.first.size()));
2284 d_members.
insert(members);
2288template <
class VALUE>
2304 d_members.swap(other.d_members);
2325 return d_members.
begin();
2331 return d_members.
cbegin();
2337 return d_members.
cend();
2343 return d_members.
find(key) != d_members.
end();
2349 return d_members.
empty();
2355 return d_members.
end();
2361 return d_members.
find(key);
2367 return d_members.
size();
2382: d_value(
JsonNull(), basicAllocator)
2388: d_value(original.d_value, basicAllocator)
2394: d_value(
bslmf::MovableRefUtil::move(
2395 bslmf::MovableRefUtil::access(original).d_value))
2401: d_value(
bslmf::MovableRefUtil::move(
2402 bslmf::MovableRefUtil::access(original).d_value),
2409: d_value(array, basicAllocator)
2416: d_value(
bslmf::MovableRefUtil::move(array), basicAllocator)
2422: d_value(boolean, basicAllocator)
2428: d_value(null, basicAllocator)
2476: d_value(number, basicAllocator)
2483: d_value(
bslmf::MovableRefUtil::move(number), basicAllocator)
2489: d_value(object, basicAllocator)
2496: d_value(
bslmf::MovableRefUtil::move(object), basicAllocator)
2502: d_value(basicAllocator)
2510: d_value(basicAllocator)
2516template <
class STRING_TYPE>
2522: d_value(
bslmf::MovableRefUtil::move(string), basicAllocator)
2532 d_value = rhs.d_value;
2621template <
class STRING_TYPE>
2709 return d_value.
the<
bool>();
2772template <
class STRING_TYPE>
2786 d_value.
swap(other.d_value);
2835 return d_value.
the<
bool>();
2856#if defined(BSLS_COMPILERFEATURES_SUPPORT_OPERATOR_EXPLICIT)
2864Json::operator
bool &()
2866 return theBoolean();
2870Json::operator JsonNull &()
2876Json::operator JsonNumber &()
2882Json::operator JsonObject &()
2913 return d_value.getAllocator();
2982 return d_value.
the<
bool>();
3028#if defined(BSLS_COMPILERFEATURES_SUPPORT_OPERATOR_EXPLICIT)
3036Json::operator
const bool &()
const
3038 return theBoolean();
3042Json::operator
const JsonNull &()
const
3048Json::operator
const JsonNumber &()
const
3054Json::operator
const JsonObject &()
const
3073 return object.print(stream, 0, -1);
3080 return lhs.d_elements == rhs.d_elements;
3087 return lhs.d_elements != rhs.d_elements;
3090template <
class HASHALG>
3107 return object.print(stream, 0, -1);
3114 return lhs.d_members == rhs.d_members;
3121 return lhs.d_members != rhs.d_members;
3124template <
class HASHALG>
3140 JsonObject ta(b, allocA);
3141 JsonObject tb(a, allocB);
3151 return object.print(stream, 0, -1);
3157 return lhs.d_value == rhs.d_value;
3163 return lhs.d_value != rhs.d_value;
3166template <
class HASHALG>
bool is() const
Definition bdlb_variant.h:7605
int typeIndex() const
Definition bdlb_variant.h:7646
TYPE & createInPlace(ARGS &&... arguments)
Definition bdlb_variant.h:7454
TYPE & the()
Definition bdlb_variant.h:7517
void swap(VariantImp &other)
Definition bdlb_variant.h:7482
Definition bdldfp_decimal.h:1834
Definition bdljsn_json.h:290
void resize(bsl::size_t count)
Definition bdljsn_json.h:1972
bsl::size_t size() const
Return the number of elements in this JsonArray.
Definition bdljsn_json.h:2053
friend bool operator==(const JsonArray &, const JsonArray &)
friend void hashAppend(HASHALG &, const JsonArray &)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
Json & back()
Definition bdljsn_json.h:1861
Elements::size_type size_type
Definition bdljsn_json.h:309
BSLMF_NESTED_TRAIT_DECLARATION(JsonArray, bslma::UsesBslmaAllocator)
Json & front()
Definition bdljsn_json.h:1903
Iterator end()
Definition bdljsn_json.h:1879
Elements::const_reference const_reference
Definition bdljsn_json.h:303
Elements::iterator iterator
Definition bdljsn_json.h:305
bslma::Allocator * allocator() const BSLS_KEYWORD_NOEXCEPT
Return the allocator used by this object to allocate memory.
Definition bdljsn_json.h:1999
BSLMF_NESTED_TRAIT_DECLARATION(JsonArray, bdlb::HasPrintMethod)
Iterator begin()
Definition bdljsn_json.h:1867
void assign(INPUT_ITERATOR first, INPUT_ITERATOR last)
Definition bdljsn_json.h:1847
void popBack()
Definition bdljsn_json.h:1954
void pushBack(const Json &json)
Definition bdljsn_json.h:1960
bool empty() const
Return true if this JsonArray has size 0, and false otherwise.
Definition bdljsn_json.h:2029
Iterator erase(bsl::size_t index)
Definition bdljsn_json.h:1885
Elements::iterator Iterator
Definition bdljsn_json.h:298
Elements::const_iterator ConstIterator
Definition bdljsn_json.h:299
void clear()
Definition bdljsn_json.h:1873
ConstIterator cend() const BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2023
Elements::value_type value_type
Definition bdljsn_json.h:301
BSLMF_NESTED_TRAIT_DECLARATION(JsonArray, bslmf::IsBitwiseMoveable)
friend bool operator!=(const JsonArray &, const JsonArray &)
Elements::difference_type difference_type
Definition bdljsn_json.h:308
JsonArray & operator=(const JsonArray &rhs)
Definition bdljsn_json.h:1815
friend void swap(JsonArray &, JsonArray &)
bsl::size_t maxSize() const BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2047
Json & operator[](bsl::size_t index)
Definition bdljsn_json.h:1839
JsonArray()
Definition bdljsn_json.h:1754
ConstIterator cbegin() const BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2017
Elements::const_iterator const_iterator
Definition bdljsn_json.h:306
Iterator insert(bsl::size_t index, const Json &json)
Definition bdljsn_json.h:1909
Elements::reference reference
Definition bdljsn_json.h:302
Definition bdljsn_jsonnull.h:119
Definition bdljsn_jsonnumber.h:408
int asUint64(bsls::Types::Uint64 *result) const
Definition bdljsn_jsonnumber.h:981
int asInt(int *result) const
Definition bdljsn_jsonnumber.h:963
int asDecimal64Exact(bdldfp::Decimal64 *result) const
Definition bdljsn_jsonnumber.h:1007
float asFloat() const
Definition bdljsn_jsonnumber.h:987
int asInt64(bsls::Types::Int64 *result) const
Definition bdljsn_jsonnumber.h:969
bdldfp::Decimal64 asDecimal64() const
Definition bdljsn_jsonnumber.h:999
int asUint(unsigned int *result) const
Definition bdljsn_jsonnumber.h:975
double asDouble() const
Definition bdljsn_jsonnumber.h:993
Definition bdljsn_json.h:734
Container::value_type Member
Definition bdljsn_json.h:746
bslma::Allocator * allocator() const BSLS_KEYWORD_NOEXCEPT
Return the allocator used by this object to allocate memory.
Definition bdljsn_json.h:2317
Json & operator[](const bsl::string_view &key)
Definition bdljsn_json.h:2170
void clear() BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2199
bsl::size_t size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this JsonObject.
Definition bdljsn_json.h:2365
Iterator find(const bsl::string_view &key)
Definition bdljsn_json.h:2234
bool empty() const BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2347
Container::const_reference const_reference
Definition bdljsn_json.h:753
friend void hashAppend(HASHALG &, const JsonObject &)
friend bool operator==(const JsonObject &, const JsonObject &)
Iterator end() BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2205
Container::const_iterator const_iterator
Definition bdljsn_json.h:756
friend void swap(JsonObject &, JsonObject &)
bsl::pair< Iterator, bool > IteratorAndStatus
Definition bdljsn_json.h:749
BSLMF_NESTED_TRAIT_DECLARATION(JsonObject, bslmf::IsBitwiseMoveable)
Container::size_type size_type
Definition bdljsn_json.h:759
JsonObject()
Definition bdljsn_json.h:2064
BSLMF_NESTED_TRAIT_DECLARATION(JsonObject, bdlb::HasPrintMethod)
Container::reference reference
Definition bdljsn_json.h:752
bsl::size_t erase(const bsl::string_view &key)
Definition bdljsn_json.h:2211
JsonObject & operator=(const JsonObject &rhs)
Definition bdljsn_json.h:2141
bool contains(const bsl::string_view &key) const
Definition bdljsn_json.h:2341
Container::const_iterator ConstIterator
Definition bdljsn_json.h:747
ConstIterator cbegin() const BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2329
Container::iterator iterator
Definition bdljsn_json.h:755
bsl::pair< Iterator, bool > insert(const Member &member)
Definition bdljsn_json.h:2240
BSLMF_NESTED_TRAIT_DECLARATION(JsonObject, bslma::UsesBslmaAllocator)
Container::difference_type difference_type
Definition bdljsn_json.h:758
friend bool operator!=(const JsonObject &, const JsonObject &)
Container::value_type value_type
Definition bdljsn_json.h:751
Container::iterator Iterator
Definition bdljsn_json.h:748
Iterator begin() BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2193
ConstIterator cend() const BSLS_KEYWORD_NOEXCEPT
Definition bdljsn_json.h:2335
Definition bdljsn_json.h:1110
bool isBoolean() const
Definition bdljsn_json.h:2797
BSLMF_NESTED_TRAIT_DECLARATION(Json, bdlb::HasPrintMethod)
int asInt(int *result) const
Definition bdljsn_json.h:2945
bool isObject() const
Definition bdljsn_json.h:2815
JsonNumber & makeNumber()
Definition bdljsn_json.h:2719
int asUint(unsigned int *result) const
Definition bdljsn_json.h:2959
BSLMF_NESTED_TRAIT_DECLARATION(Json, bslma::UsesBslmaAllocator)
bool isArray() const
Definition bdljsn_json.h:2791
int asUint64(bsls::Types::Uint64 *result) const
Definition bdljsn_json.h:2966
BSLMF_NESTED_TRAIT_DECLARATION(Json, bslmf::IsBitwiseMoveable)
JsonNull & theNull()
Definition bdljsn_json.h:2839
bdldfp::Decimal64 asDecimal64() const
Definition bdljsn_json.h:2917
void makeString(const char *string)
Definition bdljsn_json.h:2759
double asDouble() const
Definition bdljsn_json.h:2931
friend bool operator==(const Json &, const Json &)
bool isNumber() const
Definition bdljsn_json.h:2809
JsonArray & theArray()
Definition bdljsn_json.h:2827
bool isString() const
Definition bdljsn_json.h:2821
int asDecimal64Exact(bdldfp::Decimal64 *result) const
Definition bdljsn_json.h:2924
friend void swap(Json &, Json &)
JsonNumber & theNumber()
Definition bdljsn_json.h:2845
JsonObject & makeObject()
Definition bdljsn_json.h:2739
bool & makeBoolean()
Definition bdljsn_json.h:2700
Json & operator=(const Json &rhs)
Definition bdljsn_json.h:2530
friend bool operator!=(const Json &, const Json &)
bool isNull() const
Definition bdljsn_json.h:2803
friend void hashAppend(HASHALG &, const Json &)
JsonObject & theObject()
Definition bdljsn_json.h:2851
bool & theBoolean()
Definition bdljsn_json.h:2833
bsl::size_t size() const
Definition bdljsn_json.h:2903
JsonType::Enum type() const BSLS_KEYWORD_NOEXCEPT
Return the type of this Json value.
Definition bdljsn_json.h:3010
void makeNull()
Definition bdljsn_json.h:2713
JsonArray & makeArray()
Definition bdljsn_json.h:2680
float asFloat() const
Definition bdljsn_json.h:2938
const bsl::string & theString() const
Definition bdljsn_json.h:3004
Json()
Definition bdljsn_json.h:2375
int asInt64(bsls::Types::Int64 *result) const
Definition bdljsn_json.h:2952
bslma::Allocator * allocator() const BSLS_KEYWORD_NOEXCEPT
Return the allocator used by this object to allocate memory.
Definition bdljsn_json.h:2911
Json & operator[](const bsl::string_view &key)
Definition bdljsn_json.h:2889
BloombergLP::bslma::Allocator * mechanism() const
Definition bslma_bslallocator.h:1126
Definition bslstl_stringview.h:441
BSLS_KEYWORD_CONSTEXPR const_pointer data() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_stringview.h:1760
BSLS_KEYWORD_CONSTEXPR size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the length of this view.
Definition bslstl_stringview.h:1676
Definition bslstl_string.h:1281
size_type size() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_string.h:6592
CHAR_TYPE * data() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_string.h:6477
Definition bslstl_pair.h:1210
Definition bslstl_unorderedmap.h:1089
enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, iterator >::type find(const LOOKUP_KEY &key)
Definition bslstl_unorderedmap.h:1559
const_iterator cbegin() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:3350
size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this unordered map.
Definition bslstl_unorderedmap.h:3544
AllocatorTraits::size_type size_type
Definition bslstl_unorderedmap.h:1152
iterator end() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:2894
allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:3502
pair< iterator, bool > insert(const value_type &value)
Definition bslstl_unorderedmap.h:3051
iterator erase(const_iterator position)
Definition bslstl_unorderedmap.h:2974
pair< iterator, bool > emplace(Args &&... args)
const_iterator cend() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:3359
void clear() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:2922
AllocatorTraits::difference_type difference_type
Definition bslstl_unorderedmap.h:1153
iterator begin() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:2885
BloombergLP::bslstl::HashTableIterator< const value_type, difference_type > const_iterator
Definition bslstl_unorderedmap.h:1160
bool empty() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:3461
size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this vector.
Definition bslstl_vector.h:2664
iterator begin() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:2511
reference back()
Definition bslstl_vector.h:2577
VALUE_TYPE const * const_iterator
Definition bslstl_vector.h:854
iterator end() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:2519
bool empty() const BSLS_KEYWORD_NOEXCEPT
Return true if this vector has size 0, and false otherwise.
Definition bslstl_vector.h:2679
reference front()
Definition bslstl_vector.h:2567
Definition bslstl_vector.h:1025
Json & reference
Definition bslstl_vector.h:1049
const Json & const_reference
Definition bslstl_vector.h:1050
allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:4019
Json value_type
Definition bslstl_vector.h:1047
iterator insert(const_iterator position, const VALUE_TYPE &value)
Definition bslstl_vector.h:3803
AllocatorTraits::size_type size_type
Definition bslstl_vector.h:1052
void push_back(const VALUE_TYPE &value)
Definition bslstl_vector.h:3760
Json * iterator
Definition bslstl_vector.h:1057
AllocatorTraits::difference_type difference_type
Definition bslstl_vector.h:1053
iterator erase(const_iterator position)
Definition bslstl_vector.h:3933
size_type max_size() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:4029
void swap(vector &other) BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(AllocatorTraits void clear() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:1712
void resize(size_type newSize)
Definition bslstl_vector.h:3616
void pop_back()
Definition bslstl_vector.h:3792
vector &operator=(BloombergLP::bslmf::MovableRef< vector< VALUE_TYPE, ALLOCATOR > > rhs) BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(AllocatorTraits void assign(INPUT_ITER first, INPUT_ITER last)
static void swap(T *a, T *b)
Definition bslalg_swaputil.h:194
Definition bslma_allocator.h:457
Definition bslmf_movableref.h:751
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:229
#define BSLMF_MOVABLEREF_DEDUCE(...)
Definition bslmf_movableref.h:690
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1804
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_COMPILERFEATURES_FORWARD_REF(T)
Definition bsls_compilerfeatures.h:2012
#define BSLS_COMPILERFEATURES_FORWARD(T, V)
Definition bsls_compilerfeatures.h:2018
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:632
void swap(OptionValue &a, OptionValue &b)
Definition bdljsn_error.h:143
bool operator!=(const Error &lhs, const Error &rhs)
void swap(Error &a, Error &b)
bool operator==(const Error &lhs, const Error &rhs)
bsl::ostream & operator<<(bsl::ostream &stream, const Error &object)
void hashAppend(HASHALG &hashAlgorithm, const Error &object)
Definition bdlb_printmethods.h:283
basic_string< char > string
Definition bslstl_string.h:782
Definition balxml_encoderoptions.h:68
Definition bdlbb_blob.h:576
Definition bdlb_printmethods.h:306
Definition bdlb_transparentequalto.h:124
Definition bdlb_transparenthash.h:158
static bool isValid(const char *string)
Definition bdlde_utf8util.h:983
Enum
Definition bdljsn_jsontype.h:127
@ e_STRING
Definition bdljsn_jsontype.h:130
@ e_BOOLEAN
Definition bdljsn_jsontype.h:132
@ e_ARRAY
Definition bdljsn_jsontype.h:129
@ e_NULL
Definition bdljsn_jsontype.h:133
@ e_OBJECT
Definition bdljsn_jsontype.h:128
@ e_NUMBER
Definition bdljsn_jsontype.h:131
TYPE first
Definition bslstl_pair.h:605
Definition bslmf_enableif.h:525
Definition bslmf_isconvertible.h:867
Definition bslmf_issame.h:146
Definition bslma_usesbslmaallocator.h:343
Definition bslmf_isbitwisemoveable.h:718
static MovableRef< t_TYPE > move(t_TYPE &reference) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1060
static t_TYPE & access(t_TYPE &ref) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1032
unsigned long long Uint64
Definition bsls_types.h:137
long long Int64
Definition bsls_types.h:132