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));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM