junnyfeng 2004年12月22日
这程序在VC6中编译通过,但VC7不能,何解?
#include <iostream>
#include <cstring>
using namespace std;


// 通用的模板定义
template <class T>
T max( T t1, T t2 ) {
return (t1 > t2 ? t1 : t2);
}


// const char* 显式特化:
// 覆盖了来自通用模板定义的实例
typedef const char *PCC;
template<> PCC max<PCC>( PCC s1, PCC s2 ) {

return ( strcmp( s1, s2 ) > 0 ? s1 : s2 );
}


// 函数模板 max() 的定义以及对 const char* 的特化
int main() {
// 调用实例: int max< int >( int, int );
int i = max( 10, 5 );
// 调用显式特化: const char* max< const char* >( const char*, const char* );
const char *p = max<PCC>( "z", "world" );
cout << "i: " << i << " p: " << p << endl;
return 0;
}

要在VC7运行的话,应该怎么做?
...全文
94 点赞 收藏 13
写回复
13 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告