diff --git a/src/types.hpp b/src/types.hpp index 1b488f0d..2b5cfb84 100644 --- a/src/types.hpp +++ b/src/types.hpp @@ -21,7 +21,7 @@ /*! @file types.hpp @brief Type definitions for Exiv2 and related functionality - @version $Name: $ $Revision: 1.2 $ + @version $Name: $ $Revision: 1.3 $ @author Andreas Huggel (ahu) ahuggel@gmx.net @date 09-Jan-04, ahu: created @@ -167,25 +167,6 @@ namespace Exif { // ***************************************************************************** // template and inline definitions - //! Template to determine the TypeId for a type T - template TypeId getType(); - - //! Specialization for an unsigned short - template<> inline TypeId getType() { return unsignedShort; } - //! Specialization for an unsigned long - template<> inline TypeId getType() { return unsignedLong; } - //! Specialization for an unsigned rational - template<> inline TypeId getType() { return unsignedRational; } - //! Specialization for a signed short - template<> inline TypeId getType() { return signedShort; } - //! Specialization for a signed long - template<> inline TypeId getType() { return signedLong; } - //! Specialization for a signed rational - template<> inline TypeId getType() { return signedRational; } - - // No default implementation: let the compiler/linker complain -// template inline TypeId getType() { return invalid; } - //! Utility function to convert the argument of any type to a string template std::string toString(T arg) diff --git a/src/value.hpp b/src/value.hpp index 18711f79..e05059a9 100644 --- a/src/value.hpp +++ b/src/value.hpp @@ -21,7 +21,7 @@ /*! @file value.hpp @brief Value interface and concrete subclasses - @version $Name: $ $Revision: 1.2 $ + @version $Name: $ $Revision: 1.3 $ @author Andreas Huggel (ahu) ahuggel@gmx.net @date 09-Jan-04, ahu: created @@ -257,6 +257,25 @@ namespace Exif { }; // class AsciiValue + //! Template to determine the TypeId for a type T + template TypeId getType(); + + //! Specialization for an unsigned short + template<> inline TypeId getType() { return unsignedShort; } + //! Specialization for an unsigned long + template<> inline TypeId getType() { return unsignedLong; } + //! Specialization for an unsigned rational + template<> inline TypeId getType() { return unsignedRational; } + //! Specialization for a signed short + template<> inline TypeId getType() { return signedShort; } + //! Specialization for a signed long + template<> inline TypeId getType() { return signedLong; } + //! Specialization for a signed rational + template<> inline TypeId getType() { return signedRational; } + + // No default implementation: let the compiler/linker complain +// template inline TypeId getType() { return invalid; } + /*! @brief Template for a %Value of a basic type. This is used for unsigned and signed short, long and rationals.