У меня есть шаблонная функция в C ++, которая в основном записывает значения в файл XML, для целей проверки я хочу выписать тип переменной, а также ее значение. В настоящее время я использую typeid(T).name()
, который отлично работает для int
, double
и т. Д., Но я хочу специальный случай для char
массивов и std::string
, чтобы он всегда записывал "строку" или что-то более значимое, чем:
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;
}