File diff r10695:3124a970a753 → r10696:8dfe83e30d01
src/core/enum_type.hpp
Show inline comments
 
@@ -74,7 +74,8 @@ template <typename Tenum_t> struct TinyE
 

	
 
/** The general declaration of TinyEnumT<> (above) */
 
template <typename Tenum_t>
 
struct TinyEnumT {
 
struct TinyEnumT
 
{
 
	typedef Tenum_t enum_type;                      ///< expose our enumeration type (i.e. Trackdir) to outside
 
	typedef EnumPropsT<Tenum_t> Props;              ///< make easier access to our enumeration propeties
 
	typedef typename Props::storage storage_type;   ///< small storage type
 
@@ -120,31 +121,4 @@ struct TinyEnumT {
 
	}
 
};
 

	
 

	
 
/** Template of struct holding enum types (on most archs, enums are stored in an int32). No math operators are provided. */
 
template <typename enum_type, typename storage_type>
 
struct SimpleTinyEnumT {
 
	storage_type m_val;  ///< here we hold the actual value in small (i.e. byte) form
 

	
 
	/** Cast operator - invoked then the value is assigned to the storage_type */
 
	FORCEINLINE operator enum_type () const
 
	{
 
		return (enum_type)this->m_val;
 
	}
 

	
 
	/** Assignment operator (from enum_type) */
 
	FORCEINLINE SimpleTinyEnumT &operator = (enum_type e)
 
	{
 
		this->m_val = (storage_type)e;
 
		return *this;
 
	}
 

	
 
	/** Assignment operator (from general uint) */
 
	FORCEINLINE SimpleTinyEnumT &operator = (uint u)
 
	{
 
		this->m_val = (storage_type)u;
 
		return *this;
 
	}
 
};
 

	
 
#endif /* ENUM_TYPE_HPP */
 
#endif /* HELPERS_HPP */