Index: /code/branches/core/src/orxonox/core/ConfigValueContainer.cc
===================================================================
--- /code/branches/core/src/orxonox/core/ConfigValueContainer.cc	(revision 793)
+++ /code/branches/core/src/orxonox/core/ConfigValueContainer.cc	(revision 794)
@@ -231,5 +231,5 @@
         int temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -245,5 +245,5 @@
         unsigned int temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -260,5 +260,5 @@
         int temp;
         bool success = ConvertValue(&temp, input, (int)defvalue);
-        ((MultiTypePrimitive)this->value_).setValue((char)temp);
+        this->value_.setValue((char)temp);
         return success;
     }
@@ -275,5 +275,5 @@
         unsigned int temp;
         bool success = ConvertValue(&temp, input, (unsigned int)defvalue);
-        ((MultiTypePrimitive)this->value_).setValue((unsigned char)temp);
+        this->value_.setValue((unsigned char)temp);
         return success;
     }
@@ -289,5 +289,5 @@
         short temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -303,5 +303,5 @@
         unsigned short temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -317,5 +317,5 @@
         long temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -331,5 +331,5 @@
         unsigned long temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -345,5 +345,5 @@
         float temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -359,5 +359,5 @@
         double temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -373,5 +373,5 @@
         long double temp;
         bool success = ConvertValue(&temp, input, defvalue);
-        ((MultiTypePrimitive)this->value_).setValue(temp);
+        this->value_.setValue(temp);
         return success;
     }
@@ -390,10 +390,10 @@
          || input.find("yes") < input.size()
          || input.find("Yes") < input.size())
-            ((MultiTypePrimitive)this->value_).setValue(true);
+            this->value_.setValue(true);
         else if (input.find("false") < input.size()
               || input.find("False") < input.size()
               || input.find("no") < input.size()
               || input.find("No") < input.size())
-            ((MultiTypePrimitive)this->value_).setValue(false);
+            this->value_.setValue(false);
         else
         {
@@ -401,5 +401,5 @@
             bool temp;
             bool success = ConvertValue(&temp, input, defvalue);
-            ((MultiTypePrimitive)this->value_).setValue(temp);
+            this->value_.setValue(temp);
             return success;
         }
Index: /code/branches/core/src/orxonox/core/ConfigValueContainer.h
===================================================================
--- /code/branches/core/src/orxonox/core/ConfigValueContainer.h	(revision 793)
+++ /code/branches/core/src/orxonox/core/ConfigValueContainer.h	(revision 794)
@@ -79,17 +79,17 @@
             inline ConfigValueContainer& getValue(T& value)                           { this->value_.getValue(value); return *this; }
 */
-            inline ConfigValueContainer& getValue(int* value)            { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(unsigned int* value)   { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(char* value)           { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(unsigned char* value)  { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(short* value)          { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(unsigned short* value) { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(long* value)           { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(unsigned long* value)  { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(float* value)          { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(double* value)         { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(long double* value)    { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(bool* value)           { ((MultiTypePrimitive)this->value_).getValue(value); return *this; }
-            inline ConfigValueContainer& getValue(std::string* value)    { ((MultiTypeString)this->value_).getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(int* value)            { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(unsigned int* value)   { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(char* value)           { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(unsigned char* value)  { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(short* value)          { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(unsigned short* value) { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(long* value)           { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(unsigned long* value)  { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(float* value)          { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(double* value)         { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(long double* value)    { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(bool* value)           { this->value_.getValue(value); return *this; }
+            inline ConfigValueContainer& getValue(std::string* value)    { this->value_.getValue(value); return *this; }
             inline ConfigValueContainer& getValue(Vector2* value)        { this->value_.getValue(value); return *this; }
             inline ConfigValueContainer& getValue(Vector3* value)        { this->value_.getValue(value); return *this; }
Index: /code/branches/core/src/util/MultiTypeMath.cc
===================================================================
--- /code/branches/core/src/util/MultiTypeMath.cc	(revision 793)
+++ /code/branches/core/src/util/MultiTypeMath.cc	(revision 794)
@@ -45,5 +45,5 @@
 }
 
-MultiTypeMath::MultiTypeMath(const MultiTypeMath& mtm)
+MultiTypeMath::MultiTypeMath(const MultiTypeMath& mtm) : MultiTypeString(mtm)
 {
     this->type_ = mtm.type_;
Index: /code/branches/core/src/util/MultiTypeMath.h
===================================================================
--- /code/branches/core/src/util/MultiTypeMath.h	(revision 793)
+++ /code/branches/core/src/util/MultiTypeMath.h	(revision 794)
@@ -39,50 +39,54 @@
     public:
         MultiTypeMath(MultiType      type = MT_null);
-        MultiTypeMath(int            value) : MultiTypeString(value) {}
-        MultiTypeMath(unsigned int   value) : MultiTypeString(value) {}
-        MultiTypeMath(char           value) : MultiTypeString(value) {}
-        MultiTypeMath(unsigned char  value) : MultiTypeString(value) {}
-        MultiTypeMath(short          value) : MultiTypeString(value) {}
-        MultiTypeMath(unsigned short value) : MultiTypeString(value) {}
-        MultiTypeMath(long           value) : MultiTypeString(value) {}
-        MultiTypeMath(unsigned long  value) : MultiTypeString(value) {}
-        MultiTypeMath(float          value) : MultiTypeString(value) {}
-        MultiTypeMath(double         value) : MultiTypeString(value) {}
-        MultiTypeMath(long double    value) : MultiTypeString(value) {}
-        MultiTypeMath(bool           value) : MultiTypeString(value) {}
-        MultiTypeMath(const char*        value) : MultiTypeString(value) {}
-        MultiTypeMath(const std::string& value) : MultiTypeString(value) {}
-        MultiTypeMath(const orxonox::Vector2&     value) { this->setValue(value); }
-        MultiTypeMath(const orxonox::Vector3&     value) { this->setValue(value); }
-        MultiTypeMath(const orxonox::ColourValue& value) { this->setValue(value); }
-        MultiTypeMath(const orxonox::Quaternion&  value) { this->setValue(value); }
-        MultiTypeMath(const orxonox::Radian&      value) { this->setValue(value); }
-        MultiTypeMath(const orxonox::Degree&      value) { this->setValue(value); }
+        inline MultiTypeMath(int            value) : MultiTypeString(value) {}
+        inline MultiTypeMath(unsigned int   value) : MultiTypeString(value) {}
+        inline MultiTypeMath(char           value) : MultiTypeString(value) {}
+        inline MultiTypeMath(unsigned char  value) : MultiTypeString(value) {}
+        inline MultiTypeMath(short          value) : MultiTypeString(value) {}
+        inline MultiTypeMath(unsigned short value) : MultiTypeString(value) {}
+        inline MultiTypeMath(long           value) : MultiTypeString(value) {}
+        inline MultiTypeMath(unsigned long  value) : MultiTypeString(value) {}
+        inline MultiTypeMath(float          value) : MultiTypeString(value) {}
+        inline MultiTypeMath(double         value) : MultiTypeString(value) {}
+        inline MultiTypeMath(long double    value) : MultiTypeString(value) {}
+        inline MultiTypeMath(bool           value) : MultiTypeString(value) {}
+        inline MultiTypeMath(const char*        value) : MultiTypeString(value) {}
+        inline MultiTypeMath(const std::string& value) : MultiTypeString(value) {}
+        inline MultiTypeMath(const orxonox::Vector2&     value) { this->setValue(value); }
+        inline MultiTypeMath(const orxonox::Vector3&     value) { this->setValue(value); }
+        inline MultiTypeMath(const orxonox::ColourValue& value) { this->setValue(value); }
+        inline MultiTypeMath(const orxonox::Quaternion&  value) { this->setValue(value); }
+        inline MultiTypeMath(const orxonox::Radian&      value) { this->setValue(value); }
+        inline MultiTypeMath(const orxonox::Degree&      value) { this->setValue(value); }
         MultiTypeMath(const MultiTypeMath& mtm);
 
-        MultiTypeMath& operator=(const orxonox::Vector2&     value) { this->setValue(value); return *this; }
-        MultiTypeMath& operator=(const orxonox::Vector3&     value) { this->setValue(value); return *this; }
-        MultiTypeMath& operator=(const orxonox::ColourValue& value) { this->setValue(value); return *this; }
-        MultiTypeMath& operator=(const orxonox::Quaternion&  value) { this->setValue(value); return *this; }
-        MultiTypeMath& operator=(const orxonox::Radian&      value) { this->setValue(value); return *this; }
-        MultiTypeMath& operator=(const orxonox::Degree&      value) { this->setValue(value); return *this; }
+        using MultiTypeString::operator=;
+        inline MultiTypeMath& operator=(const orxonox::Vector2&     value) { this->setValue(value); return *this; }
+        inline MultiTypeMath& operator=(const orxonox::Vector3&     value) { this->setValue(value); return *this; }
+        inline MultiTypeMath& operator=(const orxonox::ColourValue& value) { this->setValue(value); return *this; }
+        inline MultiTypeMath& operator=(const orxonox::Quaternion&  value) { this->setValue(value); return *this; }
+        inline MultiTypeMath& operator=(const orxonox::Radian&      value) { this->setValue(value); return *this; }
+        inline MultiTypeMath& operator=(const orxonox::Degree&      value) { this->setValue(value); return *this; }
         MultiTypeMath& operator=(const MultiTypeMath& mtm);
 
-        bool operator==(const orxonox::Vector2&     value) const { return (this->vector2_     == value); }
-        bool operator==(const orxonox::Vector3&     value) const { return (this->vector3_     == value); }
-        bool operator==(const orxonox::ColourValue& value) const { return (this->colourvalue_ == value); }
-        bool operator==(const orxonox::Quaternion&  value) const { return (this->quaternion_  == value); }
-        bool operator==(const orxonox::Radian&      value) const { return (this->radian_      == value); }
-        bool operator==(const orxonox::Degree&      value) const { return (this->degree_      == value); }
+        using MultiTypeString::operator==;
+        inline bool operator==(const orxonox::Vector2&     value) const { return (this->vector2_     == value); }
+        inline bool operator==(const orxonox::Vector3&     value) const { return (this->vector3_     == value); }
+        inline bool operator==(const orxonox::ColourValue& value) const { return (this->colourvalue_ == value); }
+        inline bool operator==(const orxonox::Quaternion&  value) const { return (this->quaternion_  == value); }
+        inline bool operator==(const orxonox::Radian&      value) const { return (this->radian_      == value); }
+        inline bool operator==(const orxonox::Degree&      value) const { return (this->degree_      == value); }
         bool operator==(const MultiTypeMath& mtm) const;
 
-        bool operator!=(const orxonox::Vector2&     value) const { return (this->vector2_     != value); }
-        bool operator!=(const orxonox::Vector3&     value) const { return (this->vector3_     != value); }
-        bool operator!=(const orxonox::ColourValue& value) const { return (this->colourvalue_ != value); }
-        bool operator!=(const orxonox::Quaternion&  value) const { return (this->quaternion_  != value); }
-        bool operator!=(const orxonox::Radian&      value) const { return (this->radian_      != value); }
-        bool operator!=(const orxonox::Degree&      value) const { return (this->degree_      != value); }
+        using MultiTypeString::operator!=;
+        inline bool operator!=(const orxonox::Vector2&     value) const { return (this->vector2_     != value); }
+        inline bool operator!=(const orxonox::Vector3&     value) const { return (this->vector3_     != value); }
+        inline bool operator!=(const orxonox::ColourValue& value) const { return (this->colourvalue_ != value); }
+        inline bool operator!=(const orxonox::Quaternion&  value) const { return (this->quaternion_  != value); }
+        inline bool operator!=(const orxonox::Radian&      value) const { return (this->radian_      != value); }
+        inline bool operator!=(const orxonox::Degree&      value) const { return (this->degree_      != value); }
         bool operator!=(const MultiTypeMath& mtm) const;
 
+        using MultiTypeString::setValue;
         inline void setValue(const orxonox::Vector2&     value) { this->type_ = MT_vector2;     this->vector2_     = value; }
         inline void setValue(const orxonox::Vector3&     value) { this->type_ = MT_vector3;     this->vector3_     = value; }
@@ -100,4 +104,5 @@
         inline orxonox::Degree&      getDegree()      { return this->degree_;      }
 
+        using MultiTypeString::getValue;
         inline void getValue(orxonox::Vector2*     variable) const { (*variable) = orxonox::Vector2     (this->vector2_);     }
         inline void getValue(orxonox::Vector3*     variable) const { (*variable) = orxonox::Vector3     (this->vector3_);     }
Index: /code/branches/core/src/util/MultiTypePrimitive.h
===================================================================
--- /code/branches/core/src/util/MultiTypePrimitive.h	(revision 793)
+++ /code/branches/core/src/util/MultiTypePrimitive.h	(revision 794)
@@ -38,58 +38,58 @@
     public:
         MultiTypePrimitive(MultiType      type = MT_null);
-        MultiTypePrimitive(int            value) { this->setValue(value); }
-        MultiTypePrimitive(unsigned int   value) { this->setValue(value); }
-        MultiTypePrimitive(char           value) { this->setValue(value); }
-        MultiTypePrimitive(unsigned char  value) { this->setValue(value); }
-        MultiTypePrimitive(short          value) { this->setValue(value); }
-        MultiTypePrimitive(unsigned short value) { this->setValue(value); }
-        MultiTypePrimitive(long           value) { this->setValue(value); }
-        MultiTypePrimitive(unsigned long  value) { this->setValue(value); }
-        MultiTypePrimitive(float          value) { this->setValue(value); }
-        MultiTypePrimitive(double         value) { this->setValue(value); }
-        MultiTypePrimitive(long double    value) { this->setValue(value); }
-        MultiTypePrimitive(bool           value) { this->setValue(value); }
+        inline MultiTypePrimitive(int            value) { this->setValue(value); }
+        inline MultiTypePrimitive(unsigned int   value) { this->setValue(value); }
+        inline MultiTypePrimitive(char           value) { this->setValue(value); }
+        inline MultiTypePrimitive(unsigned char  value) { this->setValue(value); }
+        inline MultiTypePrimitive(short          value) { this->setValue(value); }
+        inline MultiTypePrimitive(unsigned short value) { this->setValue(value); }
+        inline MultiTypePrimitive(long           value) { this->setValue(value); }
+        inline MultiTypePrimitive(unsigned long  value) { this->setValue(value); }
+        inline MultiTypePrimitive(float          value) { this->setValue(value); }
+        inline MultiTypePrimitive(double         value) { this->setValue(value); }
+        inline MultiTypePrimitive(long double    value) { this->setValue(value); }
+        inline MultiTypePrimitive(bool           value) { this->setValue(value); }
         MultiTypePrimitive(const MultiTypePrimitive& mtp);
 
-        MultiTypePrimitive& operator=(int            value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(unsigned int   value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(char           value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(unsigned char  value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(short          value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(unsigned short value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(long           value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(unsigned long  value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(float          value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(double         value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(long double    value) { this->setValue(value); return *this; }
-        MultiTypePrimitive& operator=(bool           value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(int            value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(unsigned int   value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(char           value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(unsigned char  value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(short          value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(unsigned short value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(long           value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(unsigned long  value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(float          value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(double         value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(long double    value) { this->setValue(value); return *this; }
+        inline MultiTypePrimitive& operator=(bool           value) { this->setValue(value); return *this; }
         MultiTypePrimitive& operator=(const MultiTypePrimitive& mtp);
 
-        bool operator==(int            value) const { return (this->value_.int_        == value); }
-        bool operator==(unsigned int   value) const { return (this->value_.uint_       == value); }
-        bool operator==(char           value) const { return (this->value_.char_       == value); }
-        bool operator==(unsigned char  value) const { return (this->value_.uchar_      == value); }
-        bool operator==(short          value) const { return (this->value_.short_      == value); }
-        bool operator==(unsigned short value) const { return (this->value_.ushort_     == value); }
-        bool operator==(long           value) const { return (this->value_.long_       == value); }
-        bool operator==(unsigned long  value) const { return (this->value_.ulong_      == value); }
-        bool operator==(float          value) const { return (this->value_.float_      == value); }
-        bool operator==(double         value) const { return (this->value_.double_     == value); }
-        bool operator==(long double    value) const { return (this->value_.longdouble_ == value); }
-        bool operator==(bool           value) const { return (this->value_.bool_       == value); }
+        inline bool operator==(int            value) const { return (this->value_.int_        == value); }
+        inline bool operator==(unsigned int   value) const { return (this->value_.uint_       == value); }
+        inline bool operator==(char           value) const { return (this->value_.char_       == value); }
+        inline bool operator==(unsigned char  value) const { return (this->value_.uchar_      == value); }
+        inline bool operator==(short          value) const { return (this->value_.short_      == value); }
+        inline bool operator==(unsigned short value) const { return (this->value_.ushort_     == value); }
+        inline bool operator==(long           value) const { return (this->value_.long_       == value); }
+        inline bool operator==(unsigned long  value) const { return (this->value_.ulong_      == value); }
+        inline bool operator==(float          value) const { return (this->value_.float_      == value); }
+        inline bool operator==(double         value) const { return (this->value_.double_     == value); }
+        inline bool operator==(long double    value) const { return (this->value_.longdouble_ == value); }
+        inline bool operator==(bool           value) const { return (this->value_.bool_       == value); }
         bool operator==(const MultiTypePrimitive& mtp) const;
 
-        bool operator!=(int            value) const { return (this->value_.int_        != value); }
-        bool operator!=(unsigned int   value) const { return (this->value_.uint_       != value); }
-        bool operator!=(char           value) const { return (this->value_.char_       != value); }
-        bool operator!=(unsigned char  value) const { return (this->value_.uchar_      != value); }
-        bool operator!=(short          value) const { return (this->value_.short_      != value); }
-        bool operator!=(unsigned short value) const { return (this->value_.ushort_     != value); }
-        bool operator!=(long           value) const { return (this->value_.long_       != value); }
-        bool operator!=(unsigned long  value) const { return (this->value_.ulong_      != value); }
-        bool operator!=(float          value) const { return (this->value_.float_      != value); }
-        bool operator!=(double         value) const { return (this->value_.double_     != value); }
-        bool operator!=(long double    value) const { return (this->value_.longdouble_ != value); }
-        bool operator!=(bool           value) const { return (this->value_.bool_       != value); }
+        inline bool operator!=(int            value) const { return (this->value_.int_        != value); }
+        inline bool operator!=(unsigned int   value) const { return (this->value_.uint_       != value); }
+        inline bool operator!=(char           value) const { return (this->value_.char_       != value); }
+        inline bool operator!=(unsigned char  value) const { return (this->value_.uchar_      != value); }
+        inline bool operator!=(short          value) const { return (this->value_.short_      != value); }
+        inline bool operator!=(unsigned short value) const { return (this->value_.ushort_     != value); }
+        inline bool operator!=(long           value) const { return (this->value_.long_       != value); }
+        inline bool operator!=(unsigned long  value) const { return (this->value_.ulong_      != value); }
+        inline bool operator!=(float          value) const { return (this->value_.float_      != value); }
+        inline bool operator!=(double         value) const { return (this->value_.double_     != value); }
+        inline bool operator!=(long double    value) const { return (this->value_.longdouble_ != value); }
+        inline bool operator!=(bool           value) const { return (this->value_.bool_       != value); }
         bool operator!=(const MultiTypePrimitive& mtp) const;
 
Index: /code/branches/core/src/util/MultiTypeString.cc
===================================================================
--- /code/branches/core/src/util/MultiTypeString.cc	(revision 793)
+++ /code/branches/core/src/util/MultiTypeString.cc	(revision 794)
@@ -37,5 +37,5 @@
 }
 
-MultiTypeString::MultiTypeString(const MultiTypeString& mts)
+MultiTypeString::MultiTypeString(const MultiTypeString& mts) : MultiTypePrimitive(mts)
 {
     this->type_ = mts.type_;
Index: /code/branches/core/src/util/MultiTypeString.h
===================================================================
--- /code/branches/core/src/util/MultiTypeString.h	(revision 793)
+++ /code/branches/core/src/util/MultiTypeString.h	(revision 794)
@@ -40,32 +40,36 @@
     public:
         MultiTypeString(MultiType      type = MT_null);
-        MultiTypeString(int            value) : MultiTypePrimitive(value) {}
-        MultiTypeString(unsigned int   value) : MultiTypePrimitive(value) {}
-        MultiTypeString(char           value) : MultiTypePrimitive(value) {}
-        MultiTypeString(unsigned char  value) : MultiTypePrimitive(value) {}
-        MultiTypeString(short          value) : MultiTypePrimitive(value) {}
-        MultiTypeString(unsigned short value) : MultiTypePrimitive(value) {}
-        MultiTypeString(long           value) : MultiTypePrimitive(value) {}
-        MultiTypeString(unsigned long  value) : MultiTypePrimitive(value) {}
-        MultiTypeString(float          value) : MultiTypePrimitive(value) {}
-        MultiTypeString(double         value) : MultiTypePrimitive(value) {}
-        MultiTypeString(long double    value) : MultiTypePrimitive(value) {}
-        MultiTypeString(bool           value) : MultiTypePrimitive(value) {}
-        MultiTypeString(const char*        value) { this->setValue(value); }
-        MultiTypeString(const std::string& value) { this->setValue(value); }
+        inline MultiTypeString(int            value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(unsigned int   value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(char           value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(unsigned char  value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(short          value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(unsigned short value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(long           value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(unsigned long  value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(float          value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(double         value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(long double    value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(bool           value) : MultiTypePrimitive(value) {}
+        inline MultiTypeString(const char*        value) { this->setValue(value); }
+        inline MultiTypeString(const std::string& value) { this->setValue(value); }
         MultiTypeString(const MultiTypeString& mtp);
 
-        MultiTypeString& operator=(const char*        value) { this->setValue(value); return *this; }
-        MultiTypeString& operator=(const std::string& value) { this->setValue(value); return *this; }
+        using MultiTypePrimitive::operator=;
+        inline MultiTypeString& operator=(const char*        value) { this->setValue(value); return *this; }
+        inline MultiTypeString& operator=(const std::string& value) { this->setValue(value); return *this; }
         MultiTypeString& operator=(const MultiTypeString& mtp);
 
-        bool operator==(const char*        value) const { return (this->string_ == std::string(value)); }
-        bool operator==(const std::string& value) const { return (this->string_ == value); }
+        using MultiTypePrimitive::operator==;
+        inline bool operator==(const char*        value) const { return (this->string_ == std::string(value)); }
+        inline bool operator==(const std::string& value) const { return (this->string_ == value); }
         bool operator==(const MultiTypeString& mtp) const;
 
-        bool operator!=(const char*        value) const { return (this->string_ != std::string(value)); }
-        bool operator!=(const std::string& value) const { return (this->string_ != value); }
+        using MultiTypePrimitive::operator!=;
+        inline bool operator!=(const char*        value) const { return (this->string_ != std::string(value)); }
+        inline bool operator!=(const std::string& value) const { return (this->string_ != value); }
         bool operator!=(const MultiTypeString& mtp) const;
 
+        using MultiTypePrimitive::setValue;
         inline void setValue(const char*        value) { this->type_ = MT_string; this->string_ = std::string(value); }
         inline void setValue(const std::string& value) { this->type_ = MT_string; this->string_ = value; }
@@ -74,4 +78,5 @@
         inline std::string& getString() { return this->string_; }
 
+        using MultiTypePrimitive::getValue;
         inline void getValue(std::string* variable) const { (*variable) = std::string(this->string_); }
 
