BDSTypeSafeEnum< def, inner > Class Template Reference

Improve type-safety of native enum data type in C++. More...

#include <BDSTypeSafeEnum.hh>

Collaboration diagram for BDSTypeSafeEnum< def, inner >:

Collaboration graph
[legend]

Public Member Functions

 BDSTypeSafeEnum ()
 BDSTypeSafeEnum (type v)
type underlying () const
 return underlying value (can be used in switch statement)

Private Types

typedef inner type

Private Attributes

inner val

Friends

bool operator== (const BDSTypeSafeEnum &lhs, const BDSTypeSafeEnum &rhs)
 operators for ordering
bool operator!= (const BDSTypeSafeEnum &lhs, const BDSTypeSafeEnum &rhs)
 operators for ordering
bool operator< (const BDSTypeSafeEnum &lhs, const BDSTypeSafeEnum &rhs)
 operators for ordering
bool operator<= (const BDSTypeSafeEnum &lhs, const BDSTypeSafeEnum &rhs)
 operators for ordering
bool operator> (const BDSTypeSafeEnum &lhs, const BDSTypeSafeEnum &rhs)
 operators for ordering
bool operator>= (const BDSTypeSafeEnum &lhs, const BDSTypeSafeEnum &rhs)
 operators for ordering
std::ostream & operator<< (std::ostream &out, const BDSTypeSafeEnum &a)
 operators for ordering

Detailed Description

template<typename def, typename inner = typename def::type>
class BDSTypeSafeEnum< def, inner >

Improve type-safety of native enum data type in C++.

Author:
Jochem Snuverink <Jochem.Snuverink@rhul.ac.uk>
more info at https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Type_Safe_Enum

Example: struct color_def { enum type { red, green, blue }; }; typedef BDSTypeSafeEnum<color_def,int> color; color c = color::red;

Definition at line 24 of file BDSTypeSafeEnum.hh.


The documentation for this class was generated from the following file:
Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7