解决assimp使用过程中出现“右边非法标记“的编译错误

Assimp是一个很不错的模型加载库,在使用它的时候出现了这个问题:

很显然,是std::min导致的。经过查找,出现这个问题的原因是windows.h中的宏——min与max。因此,解决方案有二,其一是禁用windows的max、min宏:

#define NOMINMAX
#include <Windows.h>

第二种方案是加上一个小括号:

(std::min)(......, .......);

方案一自然是一劳永逸的操作。方案二看起来很有趣,其实是因为预处理器替换的时候按照min(*, *)这种方式匹配的,方案二把后面的括号隔开了,因而导致预处理器不处理该位置,从而达到效果

猜你喜欢

转载自blog.csdn.net/YanEast/article/details/107137545