Visual Studio Code中C++20管道(|)运算符错误波浪线问题求助
问题:VS Code错误标记C++20管道运算符与ranges视图代码
使用g++-12 -std=c++20 main.cpp可正常编译以下C++代码,但Visual Studio Code却将管道运算符(|)及ranges库相关函数标记为错误波浪线。
// main.cpp #include <optional> #include <cstdio> #include <vector> #include <ranges> #include <iostream> int main() { std::vector<int> v = {1, 2, 3}; auto vv = v | std::views::filter([](int x) { return x % 2 == 0; }); return 0; }
鼠标悬停|时的错误提示:
no operator "|" matches these operandsC/C++(349) main.cpp(11, 15): operand types are: std::vector<int, std::allocator<int>> | std::ranges::views::__adaptor::_Partial<std::ranges::views::_Filter, lambda [](int x)->bool>
环境配置
- Visual Studio Code 1.74.2
- C/C++ Extension Pack v1.3.0
- CMake v3.22.1
- g++ v12.1.0
- 已设置Cpp Standard为c++20
- 配置提供器为CMake Tools
尝试过的无效解决方法
- 切换Cpp Standard为c23再切回c20
- 尝试确保错误波浪线使用的编译器与编译时一致
- 在settings.json中设置
C_Cpp.default.compilerPath为/usr/bin/g++-12和/usr/bin/g++-11
请问这是C/C++扩展的缺失功能/bug,还是错误波浪线与实际编译器未对齐导致的?
内容的提问来源于stack exchange,提问作者kuba.jal
相关产品推荐
相关产品推荐

