截至2018年1月,前瞻性声明的最现代风格是什么?我们使用类似下面的东西,但是有更紧凑的版本吗?
我可以写一些像class Foo::Bar
这样的东西(对我不起作用,但也许我想念一个较新的C ++标准)?或者更紧凑的版本?
当前风格:
namespace Foo
{
class SimpleCommandParser;
namespace Bar
{
class Parts;
class Situation;
class Callsign;
}
namespace Yep
{
class AircraftSnapshot;
class Aircraft;
}
}
关于documentation等类似主题存在一些问题,但它们已经过时了。
答案 0 :(得分:3)
自2018年1月起,将名称转发到命名空间仍然与标准的第一个版本相同,即声明必须在该命名空间内。
我可以写一些像
这样的内容吗?class Foo::Bar
不符合当前(C ++ 17)标准。
有一个提案P0289R0只添加了这样的功能,但它没有被遵循,并且从C ++ 17开始,这种更改还没有被引入标准。< / p>