当前位置: 首页 > news >正文

boost笔记: Cannot open include file: ‘boost/mpl/aux_/preprocessed/plain/.hpp‘

1. 问题描述

因为一下库定义了宏and,导致boost的文件包含and.hpp展开成&.hpp,所以出现以下错误
Cannot open include file: ‘boost/mpl/aux_/preprocessed/plain/&.hpp’

2. 解决方案

  • 在定义宏之前包含boost文件,但这种方案的缺点是:当文件包含很复杂时,这样的位置不好找

  • 使用#pragma push_macro(“and”) #pragma pop_macro(“and”),在包含头文件时,先保存and的宏,然后undef,最后恢复and宏,但需注意编译器兼容性,MSVC 和 GCC/Clang 支持的这项扩展指令。示例如下:

    #ifdef and#pragma push_macro("and") //保存and宏定义#undef and#include BOOST_PP_STRINGIZE(boost/and.hpp) //包含头文件#pragma pop_macro("and") //恢复and宏定义
    #else#include BOOST_PP_STRINGIZE(boost/and.hpp)
    #endif
    

相关文章:

  • 用3D slicer 去掉影像中的干扰体素而还原干净影像(脱敏切脸处理同)
  • CUDA:out of memory的解决方法(实测有效)
  • 【MATLAB代码解析】基于蜜蜂交配优化算法的排列组合优化问题MATLAB实现
  • Paper.js 的 simplify()方法在绘制高精度path时,消失问题
  • Nginx核心原理以及案例分析(AI)
  • 学习黑客 Linux 网络管理
  • Qt还有希望吗
  • leetcode 160. 相交链表
  • 国家信息中心:基于区块链和区块链服务网络(BSN)的可信数据空间建设指引
  • 重生之我在2024学Fine-tuning
  • Spring 中org.springframework.core.Ordered接口的实战教学
  • 《深度学习入门 基于Python的理论实现》思维导图
  • The Action Replay Process
  • 基于QT(C++)实现(图形界面)校园导览系统
  • 【C++游戏引擎开发】第33篇:物理引擎(Bullet)—射线检测
  • SpringBoot应急物资供应管理系统开发设计
  • windows安装micromamba
  • 实现引用计数线程安全的shared_ptr
  • centos8.5.2111 更换阿里云源
  • Android接入国标平台:工业现场级的GB28181移动端接入实践
  • 中国工程院院士、国医大师石学敏逝世
  • 印控克什米尔地区再次传出爆炸声
  • 咸宁市委常委、市纪委书记官书云调任湖北省司法厅副厅长
  • 习近平会见古共中央第一书记、古巴国家主席迪亚斯-卡内尔
  • 王受文已任全国工商联党组成员
  • 青年与人工智能共未来,上海创新创业青年50人论坛徐汇分论坛举办