00001 00015 #pragma once 00016 00017 #include "Loggable.h" 00018 00019 #include "TStd.h" 00020 00021 #include <boost/lexical_cast.hpp> 00022 00023 namespace Nvidia { 00024 namespace Logging { 00025 00031 template <typename T> 00032 class GenericSimpleLoggable : public SimpleLoggable 00033 { 00034 protected: 00036 T Value; 00037 public: 00039 GenericSimpleLoggable(T value) : Value(value) {} 00040 00042 virtual std::tstring GetStringValue() const 00043 { 00044 return boost::lexical_cast<std::tstring>(Value); 00045 } 00046 00048 virtual std::tstring GetTypeName() const 00049 { 00050 return boost::lexical_cast<std::tstring>(typeid(Value).name()); 00051 } 00052 }; 00053 00054 } 00055 }