FougTools  0.7.0dev-046fb6a
Handy tools for C++, Qt and OpenCascade
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Types | Public Member Functions | List of all members
cpp::EnumStringMap< ENUM > Class Template Reference

Provides mapping between a C++ enum type values and C strings. More...

#include <cpptools/enum_string_map.h>

Public Types

typedef std::pair< ENUM, const
char * > 
Mapping
 

Public Member Functions

 EnumStringMap ()
 
void map (ENUM eval, const char *str)
 
std::size_t size () const
 
std::size_t index (ENUM eval) const
 
ENUM valueAt (std::size_t i) const
 
ENUM value (const char *str) const
 
const char * string (ENUM eval) const
 
Mapping mapping (std::size_t i) const
 

Detailed Description

template<typename ENUM>
class cpp::EnumStringMap< ENUM >

Provides mapping between a C++ enum type values and C strings.

enum class Status {
Started,
Running,
Finished
};
statusStrMap.map(Status::Started, "status_started");
statusStrMap.map(Status::Running, "status_running");
statusStrMap.map(Status::Finished, "status_finished");
assert(statusStrMap.value("status_running") == Status::Running);
assert(std::strcmp(statusStrMap.string(Status::Running), "status_running") == 0);

Member Typedef Documentation

template<typename ENUM>
typedef std::pair<ENUM, const char*> cpp::EnumStringMap< ENUM >::Mapping

Constructor & Destructor Documentation

template<typename ENUM >
cpp::EnumStringMap< ENUM >::EnumStringMap ( )

Member Function Documentation

template<typename ENUM >
std::size_t cpp::EnumStringMap< ENUM >::index ( ENUM  eval) const
template<typename ENUM >
void cpp::EnumStringMap< ENUM >::map ( ENUM  eval,
const char *  str 
)
template<typename ENUM >
EnumStringMap< ENUM >::Mapping cpp::EnumStringMap< ENUM >::mapping ( std::size_t  i) const
template<typename ENUM >
std::size_t cpp::EnumStringMap< ENUM >::size ( ) const
template<typename ENUM >
const char * cpp::EnumStringMap< ENUM >::string ( ENUM  eval) const
template<typename ENUM >
ENUM cpp::EnumStringMap< ENUM >::value ( const char *  str) const
template<typename ENUM >
ENUM cpp::EnumStringMap< ENUM >::valueAt ( std::size_t  i) const

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