template<typename keyT, typename valT, template< typename > class KvdsTypeKey = KvdsIntegralType, template< typename > class KvdsTypeVal = KvdsIntegralType>
class moost::kvds::Kvds< keyT, valT, KvdsTypeKey, KvdsTypeVal >::Iow
Index operators normally return a reference to a value held within and when you then assign to an inderer you are actually assigning to the reference that has been returned. This won't work for a kvds because the reference returned would not update the store if it was modified. To get around this we return a value that is wrapped in a special class that implements an operator = and a cast operator. On return, if an assignment is made it will invoke the operator = which will update the value and the kvds store. If the result is assigned to a val_type the cast operator is invoked to return a copy of the value_type. The cost of this convenience is that a copy of the value type must be taken. In relality most compilers will optimise this away using RVO (Return Value Optimisation). http:///en.wikipedia.org/wiki/Return_value_optimization
Definition at line 279 of file kvds.hpp.