C++预编译时如何判断数据类型?

你好:
我想写个pair的打印输出,采用模板形式,我怎么在预处理时判断数据类型?比如是string s我输出cout<<s.c_str();是struct A{const char *name;int age;}; A a{"Tom",22} 输出cout<<a.name<<a.age等。

我写了一个还有问题,请问怎么解决?
template<typename T1, typename T2>
void print_pair(const pair<T1,T2> &p) { 
    cout << "(";
#if (T1 == string)
        cout << p.first.c_str() << ",";
#else
cout << p.first << ",";
#endif
    cout<< p.second <<")"<< endl; }

pair<string,int> s("Tom",22);//能正常输出

struct struType{const char *name;int age;}; 
struType a{"Tom",22};
pair<struType,int>s1(a,22);

这个该怎么输出?

查看全部
tcy23456
tcy23456
2020/11/27 20:16
  • c++
  • 点赞
  • 收藏
  • 回答
    私信

1个回复