【问题标题】:Passing datatypes of the same definition but in different namespaces传递相同定义但在不同命名空间中的数据类型
【发布时间】:2019-02-22 11:37:37
【问题描述】:

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

我现在将核心功能转移到共享对象中,我不希望这个库仅仅依赖于 PNG++ 的几个数据类型。由于代码是 FOSS,我可以将这些类型复制到我的库中,但我想将它们带入我项目的命名空间。所有这些都引出了我的问题。

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

【问题讨论】:

    标签: c++ namespaces


    【解决方案1】:

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

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

    【讨论】:

    • 这基本上是我所期望的。感谢您的确认。
    猜你喜欢
    • 2016-09-16
    • 1970-01-01
    • 2012-07-31
    • 2022-12-31
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    相关资源
    最近更新 更多