|  | Home | Libraries | People | FAQ | More | 
        A value
        stores an instance of array as the underlying representation
        for a JSON array. Instances of the array type function identically
        to a std::vector
        of value.
        Additionally:
      
storage_ptr as the container
            itself.
          
        An empty array may be constructed without incurring any memory allocations
        using the default memory resource. A storage_ptr can also be explicitly
        specified:
      
array arr1; // empty array, uses the default memory resource array arr2( make_shared_resource<monotonic_resource>() ); // empty array, uses a counted monotonic resource
Initializer lists can be used to construct objects with initial contents. These constructors may allocate memory and throw:
array arr( { "Hello", 42, true } );
Alternatively, elements may be inserted after construction:
array arr; arr.emplace_back( "Hello" ); arr.emplace_back( 42 ); arr.emplace_back( true );
        Similar to its standard library counterpart, elements may be accessed directly
        by their 0-based index with bounds checking using at, or without bounds checking using
        operator[]:
      
assert( arr[0].as_string() == "Hello" ); // The following line throws std::out_of_range, since the index is out of range arr.at( 3 ) = nullptr;
        For the complete listing of all available member functions and nested types,
        see the reference page for array.
      
        When an array
        is formatted to a std::ostream,
        the result is a valid JSON. That is, the array will be output with square
        brackets and the comma separated list of values, as per the JSON specification.