【发布时间】:2020-11-07 20:46:57
【问题描述】:
我刚刚遇到了一个奇怪的问题,它只发生在带有 Clion 的 MSVC 上,而不发生在其他编译器上(我在 Linux 和 Visual Studio 上尝试了 gcc,都没有这样的问题,使用相同的代码)。
使用这些代码:
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int>v = {1,2,3,4,5};
make_heap(v.begin(), v.end());
v.push_back(6);
push_heap(v.begin(), v.end());
}
一个错误“在函数模板特化 'std::push_heapstd::_Vector_iterator<:_vector_val> > >'的实例化中没有类型名为 'value_type' 在 'std::indirectly_readable_traitsstd::然后会显示 _Vector_iterator<:_vector_val> > >'"
是 Clion 还是 MSVC 的 bug?
附: 我仍然可以构建和运行它,所以它可能不是编译器错误; (让我更加困惑)
【问题讨论】:
-
这是一个实际的编译器错误吗?或者这仅仅是 Intellisense 中的一个错误或正在使用的任何技术?
-
@PaulMcKenzie Clion 使用 MS 的智能感知进行后端内联解析?有趣的;我不知道。
-
@PaulMcKenzie 我仍然可以构建和运行它,所以它可能不是编译器错误,尽管它似乎是
-
当然你仍然可以构建它,因为它不是编译器错误。错误出在第三方工具中,而不是编译器中。您需要区分哪些是实际的编译器错误,哪些是第三方工具错误。这个问题表明这是一个编译器错误,而它肯定不是(因为您能够构建程序)。
标签: c++ visual-studio c++11 heap clion