Index: code/trunk/src/util/MultiTypeString.h
===================================================================
--- code/trunk/src/util/MultiTypeString.h	(revision 890)
+++ code/trunk/src/util/MultiTypeString.h	(revision 1052)
@@ -39,5 +39,6 @@
 {
     public:
-        MultiTypeString(MultiType      type = MT_null);
+        MultiTypeString(MultiType type = MT_null);
+        inline MultiTypeString(void*          value) : MultiTypePrimitive(value) {}
         inline MultiTypeString(int            value) : MultiTypePrimitive(value) {}
         inline MultiTypeString(unsigned int   value) : MultiTypePrimitive(value) {}
@@ -52,53 +53,56 @@
         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); }
-        inline MultiTypeString(const MultiTypeString& mts) { this->setValue(mts);   }
+        inline MultiTypeString(const char*           value)   { this->setValue(value); }
+        inline MultiTypeString(const std::string&    value)   { this->setValue(value); }
+        inline MultiTypeString(const MultiTypeString& mts)    { this->setValue(mts);   }
         virtual inline ~MultiTypeString() {}
 
         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; }
-        inline MultiTypeString& operator=(const MultiTypeString& mts) { this->setValue(mts);   return *this; }
+        inline MultiTypeString& operator=(const char*             value)   { this->setValue(value); return *this; }
+        inline MultiTypeString& operator=(const std::string&      value)   { this->setValue(value); return *this; }
+        inline MultiTypeString& operator=(const MultiTypeString& mts)      { this->setValue(mts);   return *this; }
 
         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);              }
+        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& mts) const;
 
         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);              }
+        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& mts) const;
 
-        virtual operator int()            const;
-        virtual operator unsigned int()   const;
-        virtual operator char()           const;
-        virtual operator unsigned char()  const;
-        virtual operator short()          const;
-        virtual operator unsigned short() const;
-        virtual operator long()           const;
-        virtual operator unsigned long()  const;
-        virtual operator float ()         const;
-        virtual operator double ()        const;
-        virtual operator long double()    const;
-        virtual operator bool()           const;
-        virtual operator std::string()    const;
-        virtual operator const char*()    const;
+        virtual operator void*()                const;
+        virtual operator int()                  const;
+        virtual operator unsigned int()         const;
+        virtual operator char()                 const;
+        virtual operator unsigned char()        const;
+        virtual operator short()                const;
+        virtual operator unsigned short()       const;
+        virtual operator long()                 const;
+        virtual operator unsigned long()        const;
+        virtual operator float ()               const;
+        virtual operator double ()              const;
+        virtual operator long double()          const;
+        virtual operator bool()                 const;
+        virtual operator std::string()          const;
+        virtual operator const char*()          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;              }
+        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;              }
         void setValue(const MultiTypeString& mts);
 
-        inline const std::string getString() const { return this->string_;         }
-        inline const char*  getConstChar()   const { return this->string_.c_str(); }
+        inline std::string getString()          const { return this->string_;         }
+        inline const char*  getConstChar()      const { return this->string_.c_str(); }
 
-        inline const std::string& getString() { return this->string_;         }
-        inline const char*  getConstChar()    { return this->string_.c_str(); }
+        inline std::string& getString()          { return this->string_;         }
+        inline const char*  getConstChar()       { return this->string_.c_str(); }
 
         using MultiTypePrimitive::getValue;
-        inline void getValue(std::string* variable) const { (*variable) = this->string_;         }
-        inline void getValue(const char** variable) const { (*variable) = this->string_.c_str(); }
+        inline void getValue(std::string*      variable) const { (*variable) = this->string_;         }
+        inline void getValue(const char**      variable) const { (*variable) = this->string_.c_str(); }
+
+        virtual std::string getTypename() const;
 
         virtual std::string toString() const;
@@ -106,5 +110,5 @@
 
     protected:
-        std::string string_;
+        std::string      string_;
 };
 
