You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
experimental/tqtinterface/qt4/include/tqtenuminheritance.h

36 lines
736 B

#ifndef TQT_ENUM_INHERITANCE_H
#define TQT_ENUM_INHERITANCE_H
template <typename EnumT, typename BaseEnumT>
class TQTInheritEnum
{
public:
TQTInheritEnum() {}
TQTInheritEnum(EnumT e)
: enum_(e)
{}
TQTInheritEnum(BaseEnumT e)
: baseEnum_(e)
{}
explicit TQTInheritEnum( int val )
: enum_(static_cast<EnumT>(val))
{}
operator EnumT() const { return enum_; }
private:
// Note - the value is declared as a union mainly for as a debugging aid. If
// the union is undesired and you have other methods of debugging, change it
// to either of EnumT and do a cast for the constructor that accepts BaseEnumT.
union
{
EnumT enum_;
BaseEnumT baseEnum_;
};
};
#endif // TQT_ENUM_INHERITANCE_H