在自定义命名空间下包含标题?

时间:2012-04-28 16:08:41

标签: c++ namespaces

我在我当前的一个项目中使用第三方C ++ lib。但是,他们的lib没有定义自定义命名空间。所以,他们所有的功能都在那里。这不是什么大问题,但理想情况下他们已经使用了命名空间。

是否有可能#include在某种自定义伪命名空间下的头文件?这样,它们的所有功能都可以包含在命名空间中。

2 个答案:

答案 0 :(得分:1)

只要这会改变函数的名称(对于C ++),就不能这样做。 链接器会将命名空间的名称附加到函数中,因此由于缺少函数,链接将失败。

对于以下代码的实例

namespace MyName
{
    class MyNestedOne
    {
    public:
        void doNothing( );
    };
};

函数doNothing将具有以下名称doNothing @ MyNestedOne @ MyName @@

答案 1 :(得分:0)

正如你所说,如果他们在命名空间中,那就更好了。然而,这并不是一个值得关注的问题。

或者如果你能够使用.dll而不是.lib,你可以动态绑定它,使用它,然后放手。这样你就不会有整个运行时的浮动函数。