是否有更短的方法来在命名空间中转发声明类?
我可以通过这样做在命名空间中转发声明一个函数:
void myNamespace::doThing();
这相当于:
namespace myNamespace
{
void doThing();
}
在命名空间中转发声明一个类:
namespace myNamespace
{
class myClass;
}
是否有更短的方法来执行此操作?我在想一些类似的事情:
class myNamespace::myClass;
I can forward declare a function in a namespace by doing this:
void myNamespace::doThing();
which is equivalent to:
namespace myNamespace
{
void doThing();
}
To forward declare a class in a namespace:
namespace myNamespace
{
class myClass;
}
Is there a shorter way to do this? I was thinking something along the lines of:
class myNamespace::myClass;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,但是稍微重新格式化
并不比
No, however with a little reformatting
isn't much worse than
我以前也想做同样的事情——这是不允许的。命名空间成员必须在命名空间主体中声明。它们只能使用范围解析运算符来“引用”。
参见标准中的3.3.5“命名空间范围”。
和
I've wanted to do the same thing before - it's not allowed. A namespace member must be declared in a
namespace-body
. They can only be "referred to" using the scope resolution operator.See 3.3.5 "Namespace scope" in the standard.
and
我不这么认为。
I don't think so.