Honeycomb  0.1
Component-Model Framework
Classes | Namespaces | Macros | Typedefs | Functions
MtMap.h File Reference
#include "Honey/String/Id.h"
#include "Honey/Misc/Optional.h"
Include dependency graph for MtMap.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  honey::MtMapElem< Key_, Val_, List_ >
 Map element in recursive list. More...
 
struct  honey::MtPair< Key_, Val_ >
 Key/value pair. A pair can be constructed with the syntax: (key() = value) More...
 
class  honey::MtMapIter< Head, Elem >
 Bidirectional iterator over map key/value pairs. More...
 
class  honey::MtMapCommon< Subclass, Key_, Val_, List_ >
 Common functions between map elem and the map tail specialization. Use through class MtMapElem. More...
 
struct  honey::MtMapCommon< Subclass, Key_, Val_, List_ >::priv< isTail, _ >::findElem< Key, Prev >
 We don't have this key, recurse towards tail. More...
 
struct  honey::MtMapCommon< Subclass, Key_, Val_, List_ >::priv< isTail, _ >::findElem< Key, Prev_ >
 Specialize for our key. More...
 
struct  honey::MtMapCommon< Subclass, Key_, Val_, List_ >::priv< isTail, _ >::sizeR< Count >
 Recurse to tail. More...
 
struct  honey::MtMapCommon< Subclass, Key_, Val_, List_ >::priv< true, _ >::findElem< Key, Prev_ >
 
struct  honey::MtMapCommon< Subclass, Key_, Val_, List_ >::priv< true, _ >::sizeR< Count >
 End recursion. More...
 
struct  honey::MtMapCommon< Subclass, Key_, Val_, List_ >::hasKey_< Key >
 Check if key exists at compile-time. More...
 
struct  honey::MtMapCommon< Subclass, Key_, Val_, List_ >::size_
 Get size of map at compile-time. More...
 
struct  honey::MtMapCommon< Subclass, Key_, Val_, List_ >::empty_
 Check if empty at compile-time. More...
 
class  honey::MtMapElem< Key_, Val_, List_ >
 Map element in recursive list. More...
 

Namespaces

 honey
 Global Honeycomb namespace.
 

Macros

#define mtkey(Name)
 Construct a key type with name. More...
 
#define mtkeygen(Name)
 Construct a templated key generator that creates keys from static ints. More...
 

Typedefs

typedef MtMapElem< mt::Void, mt::Void, mt::Void > honey::MtMapTail
 Tail of map list. More...
 
template<class... Pairs>
using honey::MtMap = typename priv::MtMap_< Pairs... >::type
 Declare a map type with MtMap<Val1,Key1, Val2,Key2, ...> More...
 

Functions

template<class... Pairs>
auto honey::mtmap (Pairs &&...pairs) -> decltype(priv::mtmap_(priv::PairSeqGen< Pairs... >(), forward< Pairs >(pairs)...))
 Construct a map from (key() = value) pairs. More...
 
template<class Iter1 , class Iter2 , class Func >
auto honey::for_each_mtmap (Iter1 itBegin, Iter2 itEnd, Func &&func) -> typename std::enable_if<!std::is_same< typename Iter1::Pair::Key, typename Iter2::Pair::Key >::value >::type
 Iterate over map calling functor (visitor) for each key/value pair. More...