我在我当前的一个项目中使用第三方 C++ 库。不过,他们的 lib 没有定义自定义命名空间。所以,他们所有的功能都在那里。这没什么大不了的,但理想情况下他们会使用命名空间。
是否可以将#include
它们的头文件放在某种自定义的伪命名空间下?这样,它们的所有功能都可以包含在名称空间中。
我在我当前的一个项目中使用第三方 C++ 库。不过,他们的 lib 没有定义自定义命名空间。所以,他们所有的功能都在那里。这没什么大不了的,但理想情况下他们会使用命名空间。
是否可以将#include
它们的头文件放在某种自定义的伪命名空间下?这样,它们的所有功能都可以包含在名称空间中。
只要这会更改函数的名称(对于 C++ ),您就不能这样做。链接器会将命名空间的名称附加到函数中,因此链接将由于缺少函数而失败。
对于以下代码的实例
namespace MyName
{
class MyNestedOne
{
public:
void doNothing( );
};
};
函数 doNothing 将具有以下名称 doNothing@MyNestedOne@MyName@@
正如您所说,如果它们在名称空间中会更好。然而,这并不是什么大问题。
或者,如果您能够使用 .dll 而不是 .lib,则可以动态绑定、使用它,然后放手。这样您就不会在整个运行时使用浮动函数。