C Templates学习笔记五:模板实战

使用分离模型 让模板定义和声明在不同的文件里可能会导致链接错误。

为了解决这种问题,我们把模板的声明和定义都放在同一个头文件里。

例如:

#ifdef MYFIRST_HPP
#define MYFIRST_HPP

#include <iostream>
#include <typeinfo>

template <typename T>
void print_typeof(T const&);

template <typename T>
void print_typeof(T const& x)
{

}

#endif

注:

包含模型。

一:显式实例化


template void print_typeof<double>(double const&);

显示实例化函数和类模板 可以避免上面提到的链接错误,但是不能重复实例化。

二:整合包含模型和显式实例化

三:分离模型

利用导出模板机制,关键字export。

四:模板和内联

函数模板缺省情况下不是内联的,需要显式定义,但对于类定义内部的函数,与非模板一样被隐式内联了。

发布了35 篇原创文章 · 获赞 5 · 访问量 422

猜你喜欢

转载自blog.csdn.net/qq_33776188/article/details/102952078