[讨论]关于模板的分离编译
最近在看 Bjarne 的<<the c++ programming language>>在有看了<<C++ primer>>的基础下还可以看的明白;现在对模板的分离编译存有疑问,想请教一下大家。
//file.h
#include<iostream>
#include<string>
using namespace std;
template<typename T>bool Max(T left,T right);
//file.cpp
#include"file.h"
template<typename T>bool Max(T left,T right)//本来应该是export template<typename T>bool Max(T left,T right),但是我
{ //手头上的编译器 vc.net不支持export这个关键字
return (left>right);
}
// main.cpp;
#include"file.h"
int mian()
{
string s1("the c programming language");
string s2("the c++ programming language");
cout<<boolalpha;
cout<<Max(s1,s2)<<endl;
}
运行的时候会出现链接错误,是不能实例化模板的缘故。但是VC6.0跟VC.NET跟本就没有export这个关键字,各位手上的编译器可以支持 export吗,还有,关于这个问题怎样解决,谢谢大家了.