• 全部
...

两个头文件重复定义了一个名字,怎么办

prhanxben 2011-03-22 07:30:24
因为用到不同的库的头文件,但这两个文件里定义了相同的名字:
typedef xxxxx Typename;

这个Typename又是很多地方必须用到的。不可能在使用的地方一一加上namespace

请问有什么办法能同时使用这两个 typedef么?

...全文
给本帖投票
1156 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
prhanxben 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qq120848369 的回复:]

给你的库头文件整个包在namespace里,只要在原有的库实现文件里using一下就可以了。

等你用到自己程序里的时候,选择性的利用namespace暴露这个类型。
[/Quote]
头文件和cpp文件我都不能改,请问怎么包在自己的namespace里?
is2120 2011-03-22
  • 打赏
  • 举报
回复
选择局部暴露namespace
碎碎念 2011-03-22
  • 打赏
  • 举报
回复
不用typedef,换成预编译,然后用#ifdef判断...
delphiwcdj 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 prhanxben 的回复:]

引用 1 楼 delphiwcdj 的回复:

定义到不同的命名空间
不可能在使用的地方一一加上namespace,这个怎么讲

就是比如在所有 cout 前加上std::cout
但我已有的代码这种地方太多了,都加不可能。

两个头文件是人家的东西我不能改,请问怎么把这俩重名的定义到不同名字空间?
[/Quote]
可以利用编译器帮你完成代码替换,VS下Ctrl+f指定你替换的内容和范围
delphiwcdj 2011-03-22
  • 打赏
  • 举报
回复
没有想到好的办法,关注下
qq120848369 2011-03-22
  • 打赏
  • 举报
回复
给你的库头文件整个包在namespace里,只要在原有的库实现文件里using一下就可以了。

等你用到自己程序里的时候,选择性的利用namespace暴露这个类型。
taodm 2011-03-22
  • 打赏
  • 举报
回复
怕麻烦就别搞编程。
mapoor 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 delphiwcdj 的回复:]

定义到不同的命名空间
不可能在使用的地方一一加上namespace,这个怎么讲
[/Quote]
他意思是 用到的地方很多,全加namespace::Typename麻烦。

建议可以用宏#define Typename namespace::Typename
prhanxben 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 delphiwcdj 的回复:]

定义到不同的命名空间
不可能在使用的地方一一加上namespace,这个怎么讲
[/Quote]
就是比如在所有 cout 前加上std::cout
但我已有的代码这种地方太多了,都加不可能。

两个头文件是人家的东西我不能改,请问怎么把这俩重名的定义到不同名字空间?
delphiwcdj 2011-03-22
  • 打赏
  • 举报
回复
定义到不同的命名空间
不可能在使用的地方一一加上namespace,这个怎么讲

65,182

社区成员

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

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

手机看
关注公众号

关注公众号

客服 返回
顶部