是否可以避免在前向声明中使用嵌套命名空间?



截至 2018 年 1 月,前向声明最现代的样式是什么?我们使用如下所示的内容,但是有更紧凑的版本吗?

我可以写一些像class Foo::Bar这样的东西(对我不起作用,但也许我想念更新的C++标准)?还是更紧凑的版本?

当前样式:

namespace Foo
{
class SimpleCommandParser;
namespace Bar
{
class Parts;
class Situation;
class Callsign;
}
namespace Yep
{
class AircraftSnapshot;
class Aircraft;
}
}

有一些关于类似主题的问题,例如嵌套命名空间中的前向声明,但它们已经很老了。

截至 2018 年 1 月,将名称向前声明到命名空间中仍然与标准第一版以来相同,即声明必须在该命名空间内。

我可以写一些类似class Foo::Bar的东西

不在当前 (C++17) 标准中。

有一个提议P0289R0添加这样的功能,但它没有得到贯彻,并且截至 C++17 年尚未将此类更改引入标准。

最新更新