【发布时间】:2019-04-08 05:45:12
【问题描述】:
我想遍历多个深度的模板类。 在 C++98(c++11 之前)中。
伪代码。
template<typename T>
std::string find_type(T *ptr);
template <>
std::string find_type<std::string>(int *ptr)
{
return "string";
}
template <>
std::string find_type<std::list>(std::list *ptr)
{
return "list";
}
template <>
std::string find_type<std::vector>(std::vector *ptr)
{
return "vector";
}
template<T>
std::string somefunction(T *ptr)
{
if(T is template class)
return find_type + " " + somefunction(ptr);
else
return find_type(ptr);
}
我想得到以下结果:
std::list<std::string> test;
somefunction(test) -> I NEED "list string";
std::list<std::vector<std::string> > test2;
somefunction(test) -> I NEED "list vector string";
我该怎么做?
我想做模板类序列化器。
谢谢。
【问题讨论】: