Index: src/libchcore/IColumnsDefinition.h =================================================================== diff -u -N -r7b830c34855c8aaa81aac2c6e0ca0fa6bae95e66 -ra44714d5c7ec0f50a376f4d0ea919ee5a224f834 --- src/libchcore/IColumnsDefinition.h (.../IColumnsDefinition.h) (revision 7b830c34855c8aaa81aac2c6e0ca0fa6bae95e66) +++ src/libchcore/IColumnsDefinition.h (.../IColumnsDefinition.h) (revision a44714d5c7ec0f50a376f4d0ea919ee5a224f834) @@ -22,6 +22,7 @@ #include "libchcore.h" #include "TString.h" #include +#include "TPath.h" BEGIN_CHCORE_NAMESPACE @@ -58,6 +59,26 @@ virtual bool IsEmpty() const = 0; }; +template struct ColumnType {}; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_bool; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_short; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ushort; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_int; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_uint; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_long; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ulong; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_longlong; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ulonglong; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_double; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_string; }; +template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_path; }; + +template +IColumnsDefinition::ETypes GetColumnType(const T&) +{ + return ColumnType::value; +} + END_CHCORE_NAMESPACE #endif