你好:
我想写个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);
这个该怎么输出?