如何解决为什么 Boost.Hana 使用宏来打开/关闭命名空间?
两个宏分别用于打开和关闭 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 并将其更改为普通的命名空间声明。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。