Teuchos Package Browser (Single Doxygen Collection)
Version of the Day
|
Map a std::string to an enumeration. More...
#include <Teuchos_StringToIntMap.hpp>
Classes | |
class | AlreadyExists |
class | DoesNotExist |
Public Member Functions | |
StringToIntMap (const std::string &defaultGroupName, int n, const char *strings[]) | |
int | get (const std::string &option, const std::string &groupName="") const |
template<class EnumType > | |
EnumType | get (const std::string &option, const std::string &groupName="") const |
const std::string & | defaultGroupName () const |
Private Types | |
typedef std::map< std::string, int > | map_t |
Private Member Functions | |
std::string | validSelections () const |
StringToIntMap () | |
Private Attributes | |
std::string | defaultGroupName_ |
map_t | map_ |
Related Functions | |
(Note that these are not member functions.) | |
template<class EnumType > | |
EnumType | get (StringToIntMap const &theMap, std::string const &option, std::string const &groupName="") |
Nonmember get function. More... | |
Map a std::string to an enumeration.
The purpose of this class is to simplify mapping a standard std::string to an integer which can be interpreted as an enumeration.
Here is an example of its use.
const int n_opt = 3; enum MyOptEnum { OPT_ONE ,OPT_TWO ,OPT_THREE }; // NOTE: Must be 0, 1,..., n_opt - 1 const char* MyOptStrings[n_opt] = { "OPT_ONE ,"OPT_TWO" ,"OPT_THREE" }; // NOTE: parallels enums in MyOptEnum StringToIntMap my_enum_map( "opt_map", n_opt, NyOptStrings ); ... switch( my_enum_map.get<MyOptEnum>("OPT_ONE") ) { case OPT_ONE: // do stuff case OPT_TWO: // do stuff case OPT_THREE: // do stuff default: // ??? }
The number of strings passed to the constructor must equal the number of options in the enumeration. If there are duplicate strings (capitalization concidered) then the std::exception AlreadyExists
is throw. If a std::string that was not passed in the constructor if given to operator()( const std::string& str )
then the std::exception DoesNotExist
is thrown.
In the constructor, defaultGroupName
is used in error messages in the exceptions thrown to help make since out of the message.
The default constructor is not defined and not to be called.
Definition at line 65 of file Teuchos_StringToIntMap.hpp.
|
private |
Definition at line 91 of file Teuchos_StringToIntMap.hpp.
Teuchos::StringToIntMap::StringToIntMap | ( | const std::string & | defaultGroupName, |
int | n, | ||
const char * | strings[] | ||
) |
Definition at line 14 of file Teuchos_StringToIntMap.cpp.
|
private |
|
inline |
Definition at line 29 of file Teuchos_StringToIntMap.cpp.
EnumType Teuchos::StringToIntMap::get | ( | const std::string & | option, |
const std::string & | groupName = "" |
||
) | const |
|
inline |
Definition at line 127 of file Teuchos_StringToIntMap.hpp.
|
private |
Definition at line 44 of file Teuchos_StringToIntMap.cpp.
|
related |
Nonmember get function.
Definition at line 107 of file Teuchos_StringToIntMap.hpp.
|
private |
Definition at line 92 of file Teuchos_StringToIntMap.hpp.
|
private |
Definition at line 93 of file Teuchos_StringToIntMap.hpp.