是否应该从命名空间库中向前声明 类?

Should one forward declare classes from a namespaced library?

我正在设计一个将放置在命名空间内的 C++ 库。

如果我的库的用户只需要我的 classes 之一的前向声明,并且因为你不能在命名空间内做前向声明,例如class ns_name::class_name;,我应该

正如@molbdnilo 所指出的,使用命名空间进行前向声明没有任何问题。第一个选项根本不是一个选项,出于各种原因我不想包含 header 直到我不得不这样做,前向声明始终是首选方式。 为什么不像许多 boost 实现那样只提供一个带有前向声明的 header 呢?例如提升精神 numerics_fwd.hpp?

啊,错过了@DevSolar 的评论。恕我直言,这是最好的解决方案。