#ifndef __bbtkTypeMapping_h_INCLUDED__ #define __bbtkTypeMapping_h_INCLUDED__ namespace bbtk { /// template class TypeMapping { public: TypeMapping() {} template ValueType& value() { return m_map[ (void*)typeid(T).name() ]; } template ValueType& operator[]( const T& ) { return m_map[ (void*)typeid(T).name() ]; } ValueType& operator[]( const std::type_info& t) { return m_map[ (void*)t.name() ]; } unsigned int size() const { return m_map.size(); } typedef typename std::map::const_iterator const_iterator; const_iterator begin() const { return m_map.begin(); } const_iterator end() const { return m_map.end(); } protected: std::map m_map; }; } #endif