/*!
* @class InternalMap
*
* @brief An internal property map using member ids.
*
* @signature template<typename TContainer, unsigned int const MemberId> class
* InternalMap<TContainer, MemberId>
*
* @tparam TContainer The cargo type which can be determined with @link Cargo
* @endlink.
* @tparam MemberId An unsigned int to specify the position of the member in the
* cargo. Note: If zero it is assumed that the cargo is a
* simple type (e.g., int). Default <tt>0</tt>.
*
* @section Remarks
*
* Internal property maps are used to access internal edge cargos.
*
* @fn InternalMap#assignProperty:
*
* @brief Assigns a property to an item in the property map.
*
* @signature void assignProperty(pm, d, val)
*
* @param pm The property map
* @param d A vertex or edge descriptor that identifies the item in the property
* map. Types: @link VertexDescriptor @endlink, @link
* Graph#EdgeDescriptor @endlink
* @param val The new value, where thg type of the new value must match the
* value type of the property map.
*
* @fn InternalMap#property:
*
* @brief Accesses the property of an item in the property map.
*
* @signature TRef property(pm, d)
*
* @param pm The property map.
* @param d A vertex or edge descriptor that identifies the item in the property
* map. Types: @link VertexDescriptor @endlink, @link
* Graph#EdgeDescriptor @endlink
*
* @return TRef Reference to the item in the property map of type @link
* Reference @endlink.
*
* @fn InternalMap#getProperty
*
* @brief Get method for an item's property.
*
* @signature TValue getProperty(pm, d)
*
* @param pm The property map.
* @param d A vertex or edge descriptor that identifies the item in the property
* map. Types: @link VertexDescriptor @endlink, @link
* Graph#EdgeDescriptor @endlink
*
* @return TValue Reference to the item in the property map of type @link
* GetValue @endlink.
*/