/*!
* @class ExternalPropertyMap External Property Map
*
* @brief An external property map.
*
* @signature template<TValue, TSpec> class String<TValue, TSpec>
*
* @tparam TValue The type of information stored in the property map.
* @tparam TSpec The specializing type. Default: @link AllocString @endlink.
*
* @section Remarks
*
* The external property map is assumed to be an instance of @link String
* @endlink. It is indexed via @link VertexDescriptor @endlink or @link
* Graph#EdgeDescriptor @endlink.
*
* @fn ExternalPropertyMap#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 the type of the new value must match the
* value type of the property map.
*
* @fn ExternalPropertyMap#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 ExternalPropertyMap#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.
*/