c++ - 为什么 Boost.Hana 使用宏来打开/关闭命名空间?
问题描述
分别用于打开和关闭 a 的两个宏的众多示例之一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 }}
这样做有什么好处?
(考虑到至少有一个缺点:从 s 的开头到结尾来回跳转变得更加困难namespace
。)
解决方案
这最初是为了与使用内联命名空间的前向兼容,但是这从未变得相关。我重新打开了https://github.com/boostorg/hana/issues/288并将其更改为正常的命名空间声明。
推荐阅读
- r - 获取 R 数据框中唯一 id 的值变化计数
- php - PHP 5.6 前后的 PHP 可变参数函数
- c++ - STL binary_search() 实现
- java - 我可以从 Java 模块中排除导出的包吗?
- vba - 如何将预定义的字符串设置为“wb”
- php - 在某些数据库队列上在 PHP 中隐藏链接
- android - How disable same origin policy of iframe inside android webview?
- php - Showing success logout message on the redirected page
- javascript - 在应用程序脚本中过滤二维数组
- python - 在 TensorFlow 中将张量保存为图像