C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
2016-07-31 20:25
746 查看
C++ Template》第六章讲过这个问题
组织模板代码有三种方式
1.包含模型(常规写法 将实现写在头文件中)
2.显式实例化(实现写在cpp文件中,使用template class语法进行显式实例化)
3.分离模型(使用C++ export关键字声明导出)
第三种方式理论最优,但是实际从C++标准提出之后主流编译器没有支持过,并且在最新的C++11标准中已经废除此特性,export关键字保留待用。
那么实际上能够使用的实现分离也就只有显式实例化
比较有意思的是,《C++ Template》书中作者建议代码为分离模型做准备,等待编译器支持之后替换,没想到最终这个特性被C++标准废弃了。
作者:唐沂
链接:http://www.zhihu.com/question/20630104/answer/80220897
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
组织模板代码有三种方式
1.包含模型(常规写法 将实现写在头文件中)
2.显式实例化(实现写在cpp文件中,使用template class语法进行显式实例化)
3.分离模型(使用C++ export关键字声明导出)
第三种方式理论最优,但是实际从C++标准提出之后主流编译器没有支持过,并且在最新的C++11标准中已经废除此特性,export关键字保留待用。
那么实际上能够使用的实现分离也就只有显式实例化
比较有意思的是,《C++ Template》书中作者建议代码为分离模型做准备,等待编译器支持之后替换,没想到最终这个特性被C++标准废弃了。
作者:唐沂
链接:http://www.zhihu.com/question/20630104/answer/80220897
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
相关文章推荐
- C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
- C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
- C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
- C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
- C++模板类头文件和实现文件分离的方法(vs2012测试)
- 在VC9.0中实现C++模板类头文件和实现文件分离的方法
- C++ 接口与实现分离技术---如何将文件间的编译关系降至最低
- 实现C++模板类头文件和实现文件分离的方法
- 实现C++模板类头文件和实现文件分离的方法
- 在VC9.0中实现C++模板类头文件和实现文件分离的方法
- 在VC9.0中实现C++模板类头文件和实现文件分离的方法
- C++模板类头文件和实现文件分离
- C++模板的声明与实现分离 编译错误详解
- 如何用VS2010新建一个类?用来写C++文件的标准格式建立?就是能做到声把声明放在.H里,实现放在.CPP里的
- [C++]模板类的声明与实现分离问题
- C++的类模板的问题(实现文件和头文件放在一起), 因为模板不支持分离编译
- C++中模板类声明和实现能否分离?
- c++ 模板头文件与实现文件分离
- C++模板编程:如何使非通用的模板函数实现声明和定义分离
- C/C++程序编译步骤 如何生成可执行文件