Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

using operator auto is giving false error

未关闭
#14,137 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
cpp
领域
devtools

调研方向

首先,使用报告中所示的最小 C++ 源代码重现该诊断,并检查 IntelliSense 如何解析这两个 using 声明。完成的标准是将 operator auto 声明识别为错误,同时 using a::operator char; 不再收到错误的错误波浪线标记。

由索引模型根据 Issue 内容生成。

描述

bug Language Service Visual Studio
Environment
Version: 1.108.1 (user setup)
Commit: 585eba7c0c34fd6b30faac7c62a42050bfbc0086
Date: 2026-01-14T14:55:44.241Z
Electron: 39.2.7
ElectronBuildId: 12953945
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Windows_NT x64 10.0.26100

C/C++ extension version 1.30.1

Bug Summary and Steps to Reproduce

Bug Summary:

When a class declares a conversion function using operator auto() IntelliSense will later be confused on references to that member of that class from other classes with a using statement. The code compiles fine, but IntelliSense will report it with an error squiggle.

Steps to reproduce:

  1. Use this source file

    struct a {
        operator auto() { return char(8); }
    };
    
    struct b : a {
       using a::operator auto;
       using a::operator char;
    };
    
  2. See error

Image
class "a" has no member "operator char"
Image

Expected behavior:

I would have expected using operator a::auto to be the error, and using a::operator char; to not be flagged as an error.

Configuration and Logs
There is no _c_cpp_properties.json_ in use for this example.

-------- Diagnostics - 1/15/2026, 8:47:45 PM
Version: 1.30.1
Current Configuration:
{
    "name": "Win32",
    "includePath": [
        "${workspaceFolder}/**"
    ],
    "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE"
    ],
    "intelliSenseModeIsExplicit": false,
    "cStandardIsExplicit": false,
    "cppStandardIsExplicit": false,
    "mergeConfigurations": false,
    "recursiveIncludes": {},
    "recursiveIncludesReduceIsExplicit": false,
    "recursiveIncludesPriorityIsExplicit": false,
    "recursiveIncludesOrderIsExplicit": false,
    "compilerPath": "",
    "compilerPathIsExplicit": true,
    "browse": {
        "limitSymbolsToIncludedHeaders": true
    }
}
Modified Settings:
{
    "C_Cpp.autocompleteAddParentheses": true,
    "C_Cpp.default.compilerPath": ""
}
Additional Tracked Settings:
{
    "editorTabSize": 4,
    "editorInsertSpaces": true,
    "editorAutoClosingBrackets": "languageDefined",
    "filesEncoding": "utf8",
    "filesAssociations": {
        "*.Ps1xml": "xml",
        "*.H86": "hex",
        "*.kwaconfig": "json",
        "*.tcc": "cpp",
        "*.xslt": "xsl",
        "*.rstc": "ini"
    },
    "filesExclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/.DS_Store": true,
        "**/Thumbs.db": true
    },
    "filesAutoSaveAfterDelay": false,
    "editorInlayHintsEnabled": true,
    "editorParameterHintsEnabled": true,
    "searchExclude": {
        "**/node_modules": true,
        "**/bower_components": true,
        "**/*.code-search": true
    },
    "workbenchSettingsEditor": "ui"
}
cpptools version (native): 1.30.1.0
Current database path: C:\USERS\CMORRIS\APPDATA\LOCAL\TEMP\{6C345B41-3F76-4648-B7E6-2DB157100C44}\.BROWSE.VC.DB
Translation Unit Mappings:
[ C:\Users\cmorris\test.cpp - source TU]:
Translation Unit Configurations:
[ C:\Users\cmorris\test.cpp ]
    Process ID: 4588
    Memory Usage: 60 MB
    Include paths:
    Defines:
        _DEBUG
        UNICODE
        _UNICODE
    Standard Version: ms_c++17
    IntelliSense Mode: windows-msvc-x64
Total Memory Usage: 60 MB
Other Extensions

No response

Additional context

No response

主要语言
TypeScript
星标
6.2k
派生
1.7k
平均合并
1 天 4 小时
30 天内合并 PR
58

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

microsoft/vscode-cpptools 的其他 Issue

查看 microsoft/vscode-cpptools 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。