qt 中 q_foreach 与 realsenseD435中的 foreach冲突

原文:http://www.noobyard.com/article/p-qapmvyrf-rw.html

https://github.com/IntelRealSense/librealsense/issues/2923

 

realsenseD435 qt报错:

/usr/local/include/librealsense2/hpp/rs_frame.hpp:876: error: macro "Q_FOREACH" passed 3 arguments, but takes just 2
             });
              ^

原来是foreach 定义冲突

foreach并不属于C++标准语法,QT和realsense分别定义了foreach,导致冲突。

解决: 找到 rs_frame.hpp 将里面所有的 “foreach”改成 例如“foreach_rs” ,并不需要重新编译SDK

 

ps:还有另一个临时方法:先包含相关的realsense的头文件,再包含qt的相关头文件。