函数模板的特化
template
int compare(T v1,T v2)
{
if(v1
v2) return 1; else return 0; } template <> int compare
(char * s1,char * s2) { return strcmp(s1,s2); }
类模板的特化
template
class test
{
public:
void operator()()
{
cout<<"test
"<
class test
{ public: void operator()() { cout<<"test
"<
模板的偏特化
template
struct testClass
{
testClass(){cout<<"I,O"<
struct testClass
{ testClass(){cout<<"T*,T*"<
成员模板
template
class v
{
public:
template
void insert(int position ,T1 t) { cout<<"insertion"<
根据前面一个模板确定当前的模板参数
template
>
class test
{
public:
test(){cout<<"test"<
模板与友元的绑定
template
class Queue
{
friend bool operator ==
(const Queue
&t1,const Queue
&t2) { cout<<"T,T"<
内联函数模板
inline template
T min(const T& a,const T & b)
{
return a
注意inline 和template的位置不能互换
模板内部指定类型
template
class test
{
public:
typename T::size_type t; //模板内部定义类型
};
非类型模板形参
template
void arr(T (¶)[N])
{
int i=0;
for(i=0;i