用cl.exe如何编译C++模板类
我把c++模板类的定义,实现分别入在了两个文件中,代码如下:
头文件中定义如下:
//templatetest.h
template<typename T>
class myclass
{
T member;
public:
myclass(T obj);
myclass();
void add(T &t);
T get();
};
CPP文件内容如下:
//templatetest.cpp
#include"templatetest.h"
template<typename T>
myclass::myclass(T obj)
{
member=obj;
}
template<typename T>
myclass::myclass()
{
member=0;
}
template<typename T>
void myclass::add(T &t)
{
member=t.member;
}
template<typename T>
T myclass::get()
{
return member;
}
我另外加了一个文件去使用它:
//test.cpp
#include<iostream>
#include"templatetest.h"
using namespace std;
int main()
{
myclass<int> my;
myclass<int> my1(20);
cout<<my.get()<<ends<<my1.get()<<endl;
return 0;
}
我现在想用visual C++的编译工具cl.exe编译它,怎么编译都不能通过,是怎么回事呀。
我用的是下面的命令编译的:
先转到这三个文件目录下面,再用cl.exe编译:
cl /GX /MT templatetest.cpp
就是这个命令通不过了,请各位指教下!谢谢了!
[解决办法]
M$ 对 ISO C/C++ 规范的支持大致类同于 IE7 之前的浏览器对 W3C 的程度 ...
建议改用 Intel C++ 编译器作为 C++ 前台替代, 可以与 VC 或 G++ 良好整合, 前身曾是工业标准的 KAI C++ 编译器 ...