首页 > 解决方案 > 使用 boost 代码处理可能/不太可能的宏的命名空间冲突的最佳方法

问题描述

该类boost::date_time::special_values_parser有一个名为 的方法likely。但是,我在使用likely/unlikely作为分支预测宏的代码中使用此类(请参阅Linux 内核中可能/不太可能的宏如何工作以及它们有什么好处?)。有没有办法在使用宏的同时仍然使用此代码?

标签: c++boost

解决方案


有没有办法在使用宏的同时仍然使用此代码?

是的。类似函数的宏需要()立即展开,而常规函数则不需要。解决方法:

(boost::date_time::special_values_parser::likely)( /* ... */ );

推荐阅读