岁月流转,往昔空明

C++博客 首页 新随笔 联系 聚合 管理
  118 Posts :: 3 Stories :: 413 Comments :: 0 Trackbacks

http://www.cppblog.com/Files/lingjingqiu/TemplateSample.zip

 

代码在这里。演示了如何讲一个模板类中的普通成员函数和模板函数进行实例化,以实现分离编译。

没有对实例化的原理、编译器关键字和参数进行详细解释,因此仅供对模板有基本常识的人参考。

这段代码本来是在我所在的Team内部供同事参考并用作写一些Demo以测试编译器特性用的。

但是考虑到示例不牵涉到公司产品,并且对大家理解模板规则,缩短富模板代码的编译时间,减少中间文件大小是有一定帮助的,故在博客上放出。

如有不妥之处,请指正。

 

代码在MSVC10和MINGW GCC 4.5.0下通过。

如果有希望其他示例或在其他编译器(平台限Linux,Mac OS,Windows;编译器限GCC 4.0+(含4.0,下同), MSVC 2005+,Intel 11.0+)上测试不通过的,请联系我,谢谢。

posted on 2011-01-28 19:04 空明流转 阅读(2255) 评论(2)  编辑 收藏 引用

评论

# re: 写了个Sample演示如何对模板进行分离编译 2011-01-29 00:50 233
我还以为是export template  回复  更多评论
  

# re: 写了个Sample演示如何对模板进行分离编译 2011-01-29 08:23 欲三更
我记得C++类模板自动有 __declspec(dllexport)的标签,不用写。

然后要导出摸板的话,可以这样:

#ifdef DLL_EXPORT
#define EXPORT extern
#else
#define EXPORT
#endif

EXPORT template class NormalMembers<int>;

需要的话我就这样导出,但是这个东西我感觉不太实用,因为我经常遇到一个模板类要实例化好几十种实例的情况,比如每写一个类就要用到某个模板的,这样类多了要是一个一个导出,实在太麻烦了。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理