...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Push an object formed by popping n
key/value pairs from the stack.
void
push_object(
std::size_t
n);
This function pushes an object
value onto the stack. The
object is formed by first popping the top n
key/value pairs from the stack. If the stack contains fewer than n
key/value pairs, or if any of the top
n
key/value pairs on the
stack does not consist of exactly one key followed by one value, the behavior
is undefined.
A key/value pair is formed by pushing a key, and then pushing a value.
The following code creates an object on the stack with a single element, where key is "x" and value is true:
value_stack st; // reset must be called first or else the behavior is undefined st.reset(); // Place a key/value pair onto the stack st.push_key( "x" ); st.push_bool( true ); // Replace the key/value pair with an object containing a single element st.push_object( 1 ); // Pop the object from the stack and take ownership. value jv = st.release(); assert( serialize(jv) == "{\"x\",true}" ); // At this point, reset must be called again to use the stack
If there are object elements with duplicate keys; that is, if multiple elements in an object have keys that compare equal, only the last equivalent element will be inserted.
Name |
Description |
---|---|
|
The number of key/value pairs to pop from the top of the stack to form the array. |