VS2017使用assimp 5.0.0 error C2589: '(' : illegal token on right side of '::' 解决办法

坑爹微软Sucks Again.

assimp 终于更新到了5.0.0并且支持GLTF2格式,包含动画正确解析,在viewer中也能看到正确结果,真他喵的不容易,然后拿来编译完到自己项目里用,就出这玩意了,神奇的是编译他自己的viewer就没问题?

不管那么多,百度一下说是std::min之类的问题,解决办法

https://blog.csdn.net/leifeng_soul/article/details/52611390

5,6年前就听说不要用std::min,max做跨平台的东西,再之前编译PBRT源码std::min也有类似问题,自己用的话一定要自己写一套,绝对不能用cpp标准的,因为狗B微软总会时不时的恶心你一下,让标准不标准。

解决方法,简单粗暴把

iNum = std::min((size_t)iNum, prop->mDataLength / sizeof(Type));

换成

iNum = std::min<size_t>((size_t)iNum, prop->mDataLength / sizeof(Type));
原文地址:https://www.cnblogs.com/kileyi/p/11747268.html