gpt4 book ai didi

c++ - 在命名空间声明之后声明 using 语句

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:08 27 4
gpt4 key购买 nike

我正在编写一个由多个“包”组成的实用程序库。每个包中的类都包含在各种 namespace 中。我有一个关于如何通过在类声明末尾自动声明 using 语句来简化情况的想法(见下文),这将避免让程序员在 cpp 文件中执行此操作。

namespace Utility
{
class String
{
// Class Implementation
};
}

using Utility::String;

我的理解是,如果用户包含 header String.h 并且 String 在 Utility 中,那么程序员将想要使用 String。显然,如果有外部类链包括一堆弄脏命名空间的文件,这可能会很糟糕,所以我考虑如何将其改为#define。

namespace Utility
{
class String
{
// Class Implementation
};
}

#ifdef AUTO_DECLARE_NAMESPACE
using Utility::String;
#endif

这样,需要此扩展功能的程序员就可以获得它。

这是个好主意还是我忽略了什么?

最佳答案

如果您只是要为命名空间中声明的每个名称添加一个 using 声明,那么使用命名空间是没有意义的。

让头文件的用户决定他们想如何使用头文件。如果有人要用using声明,让他直接在.cpp文件里做;这将使该 .cpp 文件中的代码更加清晰,因为名称的来源很明显。

关于c++ - 在命名空间声明之后声明 using 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149986/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com