claw::multi_type_map< Key, TypeList > Class Template Reference

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

#include <multi_type_map.hpp>

List of all members.

Public Types

typedef Key key_type
typedef TypeList::head_type value_type
typedef multi_type_map< Key,
TypeList > 
self_type
typedef multi_type_map< Key,
typename TypeList::queue_type > 
super
typedef std::map< key_type,
value_type
container_type

Public Member Functions

template<typename ValueType >
const ValueType & get (const key_type &k) const
 Get a value from the map.
template<typename ValueType >
void set (const key_type &k, const ValueType &v)
 Set a value in the map.
template<typename ValueType >
bool exists (const key_type &k) const
 Tell if the map contains a value of a given type with a given key.

Private Attributes

container_type m_data
 Data stored for the first type of the list.

Friends

struct multi_type_map_wrapper< value_type, multi_type_map< key_type, TypeList > >::last_call

Detailed Description

template<typename Key, typename TypeList>
class claw::multi_type_map< Key, TypeList >

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

Template parameters

Type requirements

Example

multi_type_map<int, type_list<std::string, type_list<int, no_type> > > my_map;

Author:
Julien Jorge

Definition at line 61 of file multi_type_map.hpp.


Member Typedef Documentation

template<typename Key , typename TypeList >
typedef std::map<key_type, value_type> claw::multi_type_map< Key, TypeList >::container_type

Definition at line 69 of file multi_type_map.hpp.

template<typename Key , typename TypeList >
typedef Key claw::multi_type_map< Key, TypeList >::key_type

Definition at line 65 of file multi_type_map.hpp.

template<typename Key , typename TypeList >
typedef multi_type_map<Key, TypeList> claw::multi_type_map< Key, TypeList >::self_type

Definition at line 67 of file multi_type_map.hpp.

template<typename Key , typename TypeList >
typedef multi_type_map<Key, typename TypeList::queue_type> claw::multi_type_map< Key, TypeList >::super

Definition at line 68 of file multi_type_map.hpp.

template<typename Key , typename TypeList >
typedef TypeList::head_type claw::multi_type_map< Key, TypeList >::value_type

Definition at line 66 of file multi_type_map.hpp.


Member Function Documentation

template<typename Key , typename TypeList >
template<typename ValueType >
bool claw::multi_type_map< Key, TypeList >::exists ( const key_type k  )  const [inline]

Tell if the map contains a value of a given type with a given key.

Parameters:
k The key of the value to get.

Definition at line 237 of file multi_type_map.tpp.

00238 {
00239   typename multi_type_map_wrapper<ValueType, self_type>::method_type w;
00240   return w.exists( *this, k );
00241 } // multi_type_map::exists()

template<typename Key , typename TypeList >
template<typename ValueType >
const ValueType & claw::multi_type_map< Key, TypeList >::get ( const key_type k  )  const [inline]

Get a value from the map.

Parameters:
k The key of the value to get.

Definition at line 209 of file multi_type_map.tpp.

00210 {
00211   typename multi_type_map_wrapper<ValueType, self_type>::method_type w;
00212   return w.get( *this, k );
00213 } // multi_type_map::get()

template<typename Key , typename TypeList >
template<typename ValueType >
void claw::multi_type_map< Key, TypeList >::set ( const key_type k,
const ValueType &  v 
) [inline]

Set a value in the map.

Parameters:
k The key of the value to set.
v The value to set.

Definition at line 224 of file multi_type_map.tpp.

00225 {
00226   typename multi_type_map_wrapper<ValueType, self_type>::method_type w;
00227   w.set( *this, k, v);
00228 } // multi_type_map::set()


Friends And Related Function Documentation

template<typename Key , typename TypeList >
friend struct multi_type_map_wrapper< value_type,multi_type_map< key_type,TypeList > >::last_call [friend]

Definition at line 73 of file multi_type_map.hpp.


Member Data Documentation

template<typename Key , typename TypeList >
container_type claw::multi_type_map< Key, TypeList >::m_data [private]

Data stored for the first type of the list.

Definition at line 87 of file multi_type_map.hpp.


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

Generated on 9 Nov 2009 for CLAW Library (a C++ Library Absolutely Wonderful) by  doxygen 1.6.1