问题描述
两个宏分别用于打开和关闭 namespace
的示例之一是在 /usr/include/boost/hana/transform.hpp
中:
BOOST_HANA_NAMESPACE_BEGIN
// stuff
BOOST_HANA_NAMESPACE_END
这些宏在 /usr/include/boost/hana/config.hpp
中是这样定义的:
#define BOOST_HANA_NAMESPACE_BEGIN namespace boost { namespace hana {
#define BOOST_HANA_NAMESPACE_END }}
这样做有什么好处?
(考虑到至少有一个缺点:它使得从 namespace
的开始到结束来回跳跃变得更加困难。)
解决方法
这最初是为了与使用内联命名空间向前兼容,但是这从未成为相关。我重新打开了 https://github.com/boostorg/hana/issues/288 并将其更改为普通的命名空间声明。