InternalPointerPropertyMap - SeqAn API Documentation

# Class InternalPointerPropertyMap
An internal property map using pointer to members.

Implements | PropertyMapConcept
All Impl'd | PropertyMapConcept
Defined in | <seqan/graph_types.h>
Signature | `template <typename TMemberPointer, TMemberPointer const MEMBER_POINTER> class InternalPointerPropertyMap;`

## Template Parameters

`TMemberPointer` | A pointer to a member type.
`MEMBER_POINTER` | A pointer to a type member of type `TMemberPointer`.

## 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 that are structs or classes.

## Interface Functions Detail

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

Assigns a property to an item in the property map.

#### Parameters

`pm` | The InternalPointerPropertyMap 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 InternalPointerPropertyMap InternalPointerPropertyMap
     *
     * @implements PropertyMapConcept
     *
     * @headerfile <seqan/graph_types.h>
     *
     * @brief An internal property map using pointer to members.
     *
     * @signature template <typename TMemberPointer, TMemberPointer const
     *            MEMBER_POINTER> class InternalPointerPropertyMap;
     *
     * @tparam TMemberPointer A pointer to a member type.
     * @tparam MEMBER_POINTER A pointer to a type member of type
     *                        <tt>TMemberPointer</tt>.
     *
     * Internal property maps are used to access internal edge cargos that are
     * structs or classes.
     *
     * @fn InternalPointerPropertyMap#assignProperty:
     *
     * @brief Assigns a property to an item in the property map.
     *
     * @signature void assignProperty(pm, d, val)
     *
     * @param[in,out] pm The InternalPointerPropertyMap 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 InternalPointerPropertyMap#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 InternalPointerPropertyMap#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.
     */