
A hash tied to the json::multivalueordered class acts more or less like a standard hash, except that when you assign a new value to an existing key, the old value is retained underneath. an explicit delete deletes all values associated with a key.
by default, the old values are inaccessible through the hash interface, but can be retrieved via the tied object, however, the fetch_* methods provide a means to alter the behaviour of the hash.