传递具有相同定义但在不同名称空间中的数据类型

时间:2019-02-22 11:37:38

标签: c++ namespaces

这是我的难题。我编写了一个利用PNG ++转换图形的工具。除了PNG输出之外,我还在其库中使用了几种数据类型,这些数据类型作为通用类型与任何特定于PNG的类型分开。

我现在正在将该核心功能转移到共享库中,并且我不希望该库仅依赖于PNG ++来支持两种数据类型。我可以将这些类型复制到我的库中,因为代码是FOSS,但是我想将它们带入项目的名称空间中。所有这些使我想到了我的问题。

如果我将这些类型复制到我的库中,再复制到另一个名称空间中,它们是否仍将与PNG ++兼容?我对此的直觉是“否”,如果是这种情况,我是否应该停止担心并让PNG ++成为依赖项?

1 个答案:

答案 0 :(得分:0)

取决于类型是什么,如果它们只是typedef,则类型将是可转换的。

如果它们是结构/类,则每个命名空间中的类型将是不相关的,并且不能自动转换。