std :: vector的明显歧义错误,但仍可编译

时间:2018-09-25 15:14:00

标签: c++ c++17

我正在Vulkan中编写一个项目,它可以编译并运行良好。该代码与以前一样,但是在某些软件更新(Steam,Visual Studio等)之后,弹出了一个错误。

我提到Steam是因为这导致了单独的运行时错误。与此处相同的错误:https://www.reddit.com/r/vulkan/comments/8ybq6f/need_some_help_debugging/e29qptx/

反正这行:

const std::vector<const char*> validationLayers = { "VK_LAYER_LUNARG_standard_validation" };

以及类似的使用std::vectorstd::array的错误给了我错误:Ambiguous symbol 'const std::vector<const char*>'

我的包含和定义如下:

#define GLFW_INCLUDE_VULKAN
#define GLM_FORCE_RADIANS
#define STB_IMAGE_IMPLEMENTATION

#include <glfw3.h>
#include <glm.hpp>
#include <gtc/matrix_transform.hpp>
#include <stb/stb_image.h>

#include <iostream>
#include <stdexcept>
#include <functional>
#include <vector>
#include <set>
#include <algorithm>
#include <fstream>
#include <string>
#include <array>
#include <chrono>

#ifdef NDEBUG
const bool enableValidationLayers = false;
#else
const bool enableValidationLayers = true;
#endif

因此,如果有一种方法可以抑制突出显示此特定错误,或者存在真正的冲突,那么我很想知道它在哪里/如何去做。

就像我说的那样,它仍然可以正常运行,但是查看我的滚动条并看到一堆红色标记(通常会指示我的程序未编译)很烦人。

1 个答案:

答案 0 :(得分:1)

事实证明这与我使用的ReSharper版本有关。这里也有报道:https://resharper-support.jetbrains.com/hc/en-us/community/posts/360000430159-Intellisense-issue-with-C-17-standard?flash_digest=bbcceaf4d5a9c12c634a59aba32fc2143a325734

解决方案是将其关闭或升级到R ++ 2018.2