claw::multi_type_map< Key, meta::type_list< Head, Tail > > Class Template Reference

This class can associate values of different types to a key. More...

`#include <multi_type_map.hpp>`

Inheritance diagram for claw::multi_type_map< Key, meta::type_list< Head, Tail > >:

## Classes

struct | iterator
| This structure is used to create an iterator on the values of a given type. More...

## Public Types

typedef Key | key_type
typedef Head | value_type
typedef meta::type_list< Head, Tail > | value_type_list
typedef multi_type_map< Key, meta::type_list< Head, Tail > > | self_type
typedef std::map< key_type, value_type > | container_type
typedef multi_type_map< Key, Tail > | super

## Public Member Functions

template<typename ValueType>
void | erase (typename iterator< ValueType >::type it)
template<typename ValueType>
std::size_t | erase (const key_type &k)
template<typename ValueType>
const ValueType & | get (const key_type &k) const
template<typename ValueType>
ValueType & | get (const key_type &k)
template<typename ValueType>
void | set (const key_type &k, const ValueType &v)
void | set (const self_type &m)
template<typename ValueType>
bool | exists (const key_type &k) const
std::size_t | size () const
template<typename ValueType>
iterator< ValueType >::type | begin ()
template<typename ValueType>
iterator< ValueType >::type | end ()
template<typename ValueType>
iterator< ValueType >::const_type | begin () const
template<typename ValueType>
iterator< ValueType >::const_type | end () const

## Friends

struct | multi_type_map_wrapper< value_type, self_type >
struct | multi_type_map_helper< self_type >

## Detailed Description

template<typename Key, typename Head, typename Tail>
class claw::multi_type_map< Key, meta::type_list< Head, Tail > >

This class can associate values of different types to a key.

Author
  Julien Jorge

Definition at line 106 of file multi_type_map.hpp.

## Member Typedef Documentation

## container_type

template<typename Key, typename Head, typename Tail>

typedef std::map<key_type, value_type> claw::multi_type_map< Key, meta::type_list< Head, Tail > >::container_type

Definition at line 114 of file multi_type_map.hpp.

## key_type

template<typename Key, typename Head, typename Tail>

typedef Key claw::multi_type_map< Key, meta::type_list< Head, Tail > >::key_type

Definition at line 110 of file multi_type_map.hpp.

## self_type

template<typename Key, typename Head, typename Tail>

typedef multi_type_map< Key, meta::type_list<Head, Tail> > claw::multi_type_map< Key, meta::type_list< Head, Tail > >::self_type

Definition at line 113 of file multi_type_map.hpp.

## super

template<typename Key, typename Head, typename Tail>

typedef multi_type_map<Key, Tail> claw::multi_type_map< Key, meta::type_list< Head, Tail > >::super

Definition at line 115 of file multi_type_map.hpp.

## value_type

template<typename Key, typename Head, typename Tail>

typedef Head claw::multi_type_map< Key, meta::type_list< Head, Tail > >::value_type

Definition at line 111 of file multi_type_map.hpp.

## value_type_list

template<typename Key, typename Head, typename Tail>

typedef meta::type_list<Head, Tail> claw::multi_type_map< Key, meta::type_list< Head, Tail > >::value_type_list

Definition at line 112 of file multi_type_map.hpp.

## Friends And Related Symbol Documentation

## multi_type_map_helper< self_type >

template<typename Key, typename Head, typename Tail>

friend struct multi_type_map_helper< self_type >

friend

Definition at line 115 of file multi_type_map.hpp.

## multi_type_map_wrapper< value_type, self_type >

template<typename Key, typename Head, typename Tail>

friend struct multi_type_map_wrapper< value_type, self_type >

friend

Definition at line 115 of file multi_type_map.hpp.

The documentation for this class was generated from the following file:

- multi_type_map.hpp