????????????????????????include??????????????????????????????????????????????
//-------------test.h----------------//
template<class T>
class A
{
public:
void f(); //????????????
};
#include<test_impl.h>
//---------------test_impl.h-------------//
template<class T>
void A<T>::f()
{
…//do something
}
//---------------main.cpp---------------//
#include”test.h”
int main()
{
A<int> a;
a. f();
}
??????????????????????????????б?????????????о????????????????????????????????hack?????
//-------------test.h----------------//
template<class T>
class A
{
public:
void f(); //????????????
};
//---------------test.cpp-------------//
#include”test.h”
template<class T>
void A<T>::f()
{
…//do something
}
template class A<int>;
//---------------main.cpp---------------//
#include”test.h”
int main()
{
A<int> a;
a. f();
}
??????????????test.cpp?????????A<int>???????????????????????????????????????main??????????????????嶼????test.cpp????????????????
???????????????????????????C++0x?и?export???????????????????????????б???????????c++11?з????????????????????