No, it is not.
This is because the card executes an internal order based on the key. If you could change the key yourself, willy-nilly, all hell would burst.
You must use the provided API functions; where the use of one leads to a change in the key value (in fact, I do not think that this is really so), a corresponding internal reordering can occur.
Think about getters and setters and their use in providing an alternative to the messy / dangerous direct access of participants.
However, you could write this:
template<class T> void foo(const T& m) { typename T::key_type x; x = 0; }
std::map type aliases
key_type Key mapped_type T value_type pair<const Key,T> key_compare Compare value_compare Nested class to compare elements allocator_type Allocator reference Allocator::reference const_reference Allocator::const_reference iterator Bidirectional iterator const_iterator Constant bidirectional iterator size_type Unsigned integral type (usually same as size_t) difference_type Signed integral type (usually same as ptrdiff_t) pointer Allocator::pointer const_pointer Allocator::const_pointer reverse_iterator reverse_iterator<iterator> const_reverse_iterator reverse_iterator<const_iterator>
Lightness races in orbit
source share