我在C++中有一个模板函数,基本上将值写入XML文件,出于验证目的,我希望写出变量类型及其值。我目前使用typeid(T).name()
这对于int
的伟大工程,double
等,但我想,这样它总是写出“串”或东西比更有意义的char
阵列和std::string
一个特殊情况:C++模板T,检测类型是字符串的形式
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >
或
char const [2]
关于如何以优雅的方式做到这一点的任何想法?
我的代码(减少)看起来像这样(没有该功能仅在模板)
template <typename T> bool SetValue(const std::string §ionName, const std::string &valueName, const T &value)
{
myXMl->AddAttribute(TYPE_DEF,typeid(T).name());
return true;
}
简单而不失优雅+1 – 2012-01-17 10:26:42
我不知道我跟着,我怎么添加这个我的代码?我用我的示例代码更新了我的问题。 – Chris 2012-01-17 10:27:47
@Chris:我添加了代码的必要修改。 – 2012-01-17 10:31:05