You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:50:30