Changeset 3233
- Timestamp:
- Jun 26, 2009, 11:42:34 AM (15 years ago)
- Location:
- code/trunk/src/util
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/util/MultiType.h
r3196 r3233 76 76 #include <OgreQuaternion.h> 77 77 #include <OgreColourValue.h> 78 79 #include "TemplateUtils.h" 78 80 79 81 namespace orxonox … … 317 319 inline void resetValue() { if (this->value_) this->value_->reset(); } 318 320 319 template <typename T> inline void setType() { this->assignValue(T ());} /** @brief Resets the value and changes the internal type to T. */321 template <typename T> inline void setType() { this->assignValue(TypeStripper<T>::RawType()); } /** @brief Resets the value and changes the internal type to T. */ 320 322 inline void setType(const MultiType& other) { this->setType(other.getType()); } /** @brief Resets the value and changes the internal type to the type of the other MultiType. */ 321 323 inline void setType(MT_Type type) { this->reset(); this->convert(type); this->resetValue(); } /** @brief Resets the value and changes the internal type to the given type. */ -
code/trunk/src/util/TemplateUtils.h
r3232 r3233 39 39 namespace orxonox 40 40 { 41 /** 42 @brief 43 Use TypeStripper to get rid of the const and the reference of type T 44 @note 45 Main use of this is when trying to instantiate type T as T(). 46 */ 47 template <class T> struct TypeStripper 48 { typedef T RawType; }; 49 template <class T> struct TypeStripper<const T> 50 { typedef T RawType; }; 51 template <class T> struct TypeStripper<const T&> 52 { typedef T RawType; }; 53 54 41 55 /////////////////////////////////////////////////// 42 56 // Static detection of implicit type conversions //
Note: See TracChangeset
for help on using the changeset viewer.