G++ 编译不通过调用模板的CPP文件,但VC2005却可以

umbrook 2010-03-03 06:15:42
工程构造如下
RPCCall含有对多个参数的RPC调用
形式如下:
tamplate <typename p1>
RPCFunc1(uint64,uint32,uint32,RPCall..)
tamplate <typename p1>
RPCFunc2(uint64,uint32,uint32,uint32,RPCall..)
...

这个工程能在G++和VS下通过

调用RPCfun1 通过函数模板后,G++报错:
RPCallFun1(uint64,uint32,RPCaller<long long unsigned int>) 调用没有匹配的函数
备选为
RPCallFun1(uint64,uint32,RPCaller&)[with RPCall=PRCall<long long unsigned int>]

RPCaller是一个模板。在VS2k5下能编译通过
但是在Fedora12 G++ 4.4.2 codeblocks下编译失败,求助。

...全文
51 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
umbrook 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xboy 的回复:]
这确实是在移植过程中比较头疼的问题,
http://topic.csdn.net/u/20071026/15/fad0132c-692a-4c61-8e87-0bfabd0beba4.html

你google一下模板分离编译吧
[/Quote]
试过了,无效。。。。信息你。
xboy 2010-03-03
  • 打赏
  • 举报
回复
这确实是在移植过程中比较头疼的问题,
http://topic.csdn.net/u/20071026/15/fad0132c-692a-4c61-8e87-0bfabd0beba4.html

你google一下模板分离编译吧
umbrook 2010-03-03
  • 打赏
  • 举报
回复
的确是分离的,但是如果这样的做的话,工作量巨大。上峰也不会同意的。
umbrook 2010-03-03
  • 打赏
  • 举报
回复
的确是分离的,但是如果这样的做的话,工作量巨大。上峰也不会同意的。
xboy 2010-03-03
  • 打赏
  • 举报
回复
有肯能是你把模板的定义和实现放在不同的文件里面了。
有些编译器是不支持模板的分离编译,你尝试一下,把模板的定义和实现放在同一个头文件下

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧