# Class InternalPropertyMap
An internal property map with direct access to members.

Implements | PropertyMapConcept
All Impl'd | PropertyMapConcept
Defined in | <seqan/graph_types.h>
Signature | `template <typename TMember> class InternalPropertyMap;`

## Template Parameters

`TMember` | The member type.

## Interface Function Overview

- `void assignProperty(pm, d, val)`
  Assigns a property to an item in the property map.
- `TGetValue getProperty(pm, d)`
  Get method for an item's property.
- `TReference property(pm, d)`
  Accesses the property of an item in the property map.

### Interface Functions Inherited From PropertyMapConcept

- `assignProperty`
- `property`
- `getProperty`
- `resize`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From PropertyMapConcept

- `GetValue`
- `Reference`
- `Value`

## Detailed Description

Internal property maps are used to access internal edge cargos.

## Interface Functions Detail

### `void assignProperty(pm, d, val)`

Assigns a property to an item in the property map.

#### Parameters

`pm` | The InternalPropertyMap to assign into.
`d` | A vertex or edge descriptor that identifies the item in the property map. Types: VertexDescriptor, EdgeDescriptor
`val` | The new value, where thg type of the new value must match the value type of the property map.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `TGetValue getProperty(pm, d)`

Get method for an item's property.

#### Parameters

`pm` | The property map.
`d` | A vertex or edge descriptor that identifies the item in the property map. Types: VertexDescriptor, EdgeDescriptor

#### Returns

`TValue` | Get-value of the item in the property map of type GetValue.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `TReference property(pm, d)`

Accesses the property of an item in the property map.

#### Parameters

`pm` | The property map.
`d` | A vertex or edge descriptor that identifies the item in the property map. Types: VertexDescriptor, EdgeDescriptor

#### Returns

`TReference` | Reference to the item in the property map of type Reference.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

#### Dox Sources

    /*!
     * @class InternalPropertyMap InternalPropertyMap
     *
     * @implements PropertyMapConcept
     *
     * @headerfile <seqan/graph_types.h>
     *
     * @brief An internal property map with direct access to members.
     *
     * @signature template <typename TMember> class InternalPropertyMap;
     *
     * @tparam TMember The member type.
     *
     * Internal property maps are used to access internal edge cargos.
     *
     * @fn InternalPropertyMap#assignProperty:
     *
     * @brief Assigns a property to an item in the property map.
     *
     * @signature void assignProperty(pm, d, val)
     *
     * @param[in,out] pm The InternalPropertyMap to assign into.
     * @param[in] d A vertex or edge descriptor that identifies the item in the
     *              property map. Types: @link VertexDescriptor @endlink, @link
     *              Graph#EdgeDescriptor @endlink
     * @param[in] val The new value, where thg type of the new value must match the
     *                value type of the property map.
     *
     * @fn InternalPropertyMap#property:
     *
     * @brief Accesses the property of an item in the property map.
     *
     * @signature TReference property(pm, d)
     *
     * @param[in,out] pm The property map.
     * @param[in] d A vertex or edge descriptor that identifies the item in the
     *              property map. Types: @link VertexDescriptor @endlink, @link
     *              Graph#EdgeDescriptor @endlink
     *
     * @return TReference @link PropertyMapConcept#Reference Reference @endlink to
     *                    the item in the property map of type @link Reference
     *                    @endlink.
     *
     * @fn InternalPropertyMap#getProperty
     *
     * @brief Get method for an item's property.
     *
     * @signature TGetValue getProperty(pm, d)
     *
     * @param[in] pm The property map.
     * @param[in] d A vertex or edge descriptor that identifies the item in the
     *              property map. Types: @link VertexDescriptor @endlink, @link
     *              Graph#EdgeDescriptor @endlink
     *
     * @return TValue Get-value of the item in the property map of type @link
     *                PropertyMapConcept#GetValue GetValue @endlink.
     */