Claw 1.7.3
Classes | Public Types | Public Member Functions | Friends | List of all members
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 > >:
claw::multi_type_map< Key, 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: