使用 Vulkan 内存分配器时出现大量错误,“'(':'::' 右侧的非法标记”

问题描述

我遇到了这个问题,当我第一次尝试将 Vulkan 内存分配器 (VMA) 集成到我的程序中时就出现了,这很令人沮丧,因为我在 VMA 文档中找不到这样的错误。查看 vk_mem_alloc.h 文件后,我发现问题是由于 vk_mem_alloc.h 使用 std::maxstd::min 而引起的,它们与我也在使用的 windows.h 存在冲突。

解决方法

修复很简单,您只需在 #include "vk_mem_alloc.h" 之前调用 #include <windows.h>,但是像我这样的业余爱好者很容易挂断电话,所以我想我会在这里记录我的困难,供其他尝试学习这个令人生畏的 API 的人使用。