Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Concept always fails when it has lambda inside it

オープン
#14,160 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
cpp
領域
tooling

調査の方向性

まず、報告された C++23 concept を即時呼び出しラムダで再現し、IntelliSense の診断と issue に記載されているコンパイラの動作を比較します。両方の最小例が受け入れられ、Test() の呼び出しで関数テンプレートのインスタンスが一致しないという報告が出なくなれば、作業は完了です。

索引モデルが issue の本文から書いたものです。

説明

bug Language Service parser Visual Studio
Environment
  • OS and Version: Windows 11 Dev Channel
  • VS Code Version: 1.109.~
  • C/C++ Extension Version: 1.30.3
  • If using SSH remote, specify OS of remote machine: ``
Bug Summary and Steps to Reproduce

Bug Summary:
If a concept has lambda, it'll always fail. For example

template <typename T>
concept HasField = requires { []() { return int(1); }(); };

will fail even though its valid in C++23 and should pass. I tried all the possible scenarios I could think of, and indeed its the lambda that causes this bug. Even an empty lambda will fail:

template <typename T>
concept HasField = requires { [](){}(); };

Note that this is valid in all gcc, clang and msvc.

Steps to reproduce:

  1. Write one the following test:
template <typename T>
concept HasField = requires { []() {}(); };

template <typename T>
    requires HasField<T>
consteval void Test()
{
}

int main()
{
    Test<int>();
}
  1. Wait for the intellisense error report on the Test<int>() with the following details:
[{
	"resource": "[PATH_TO_FILE]",
	"owner": "C/C++: IntelliSense",
	"code": "304",
	"severity": 8,
	"message": "no instance of function template \"Test\" matches the argument list",
	"source": "C/C++",
	"startLineNumber": 12,
	"startColumn": 5,
	"endLineNumber": 12,
	"endColumn": 9,
	"modelVersionId": 650,
	"origin": "extHost1"
}]

Expected behavior:

Configuration and Logs
-------- Diagnostics - 2/3/2026, 11:45:49 AM
Version: 1.30.3
Current Configuration:
{
    "name": "Win32",
    "includePath": [
        "e:/source/TestGame/**"
    ],
    "windowsSdkVersion": "10.0.26100.0",
    "compilerPath": "cl.exe",
    "cStandard": "c23",
    "cppStandard": "c++23",
    "configurationProvider": "ms-vscode.cmake-tools",
    "compileCommands": [
        "EDITED_PATH\\compile_commands.json"
    ],
    "compilerPathIsExplicit": true,
    "cStandardIsExplicit": true,
    "cppStandardIsExplicit": true,
    "intelliSenseModeIsExplicit": true,
    "recursiveIncludesReduceIsExplicit": false,
    "recursiveIncludesPriorityIsExplicit": false,
    "recursiveIncludesOrderIsExplicit": false,
    "compilerPathInCppPropertiesJson": "cl.exe",
    "compileCommandsInCppPropertiesJson": [
        "build\\compile_commands.json"
    ],
    "configurationProviderInCppPropertiesJson": "ms-vscode.cmake-tools",
    "mergeConfigurations": false,
    "recursiveIncludes": {},
    "browse": {
        "limitSymbolsToIncludedHeaders": true
    }
}
Modified Settings:
{
    "C_Cpp.intelliSenseUpdateDelay": 500,
    "C_Cpp.autocompleteAddParentheses": true,
    "C_Cpp.legacyCompilerArgsBehavior": true,
    "C_Cpp.autocomplete": "disabled",
    "C_Cpp.errorSquiggles": "enabled",
    "C_Cpp.workspaceSymbols": "All",
    "C_Cpp.doxygen.generatedStyle": "/**",
    "C_Cpp.codeAnalysis.updateDelay": 100,
    "C_Cpp.codeAnalysis.clangTidy.enabled": true,
    "C_Cpp.codeAnalysis.clangTidy.useBuildPath": true,
    "C_Cpp.vcpkg.enabled": false,
    "C_Cpp.experimentalFeatures": "enabled"
}
Additional Tracked Settings:
{
    "editorTabSize": 4,
    "editorInsertSpaces": true,
    "editorAutoClosingBrackets": "languageDefined",
    "filesEncoding": "utf8",
    "filesAssociations": {},
    "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"
}
Custom browse configuration: 
{
    "browsePath": [
        "EDITED_PATH",
        "EDITED_PATH",
        "EDITED_PATH",
        "EDITED_PATH"
    ],
    "compilerPath": "c:/program files/llvm/bin/clang-cl.exe",
    "compilerArgs": [],
    "compilerFragments": [
        "/DWIN32 /D_WINDOWS /W3 /GR /EHsc /EHs- /MDd /Zi /Ob0 /Od /RTC1 -clang:-std=c++23"
    ]
}
cpptools version (native): 1.30.2.0
Current database path: C:\USERS\EDITED_PATH\APPDATA\LOCAL\MICROSOFT\VSCODE-CPPTOOLS\9DE1C39CDBB89B84DFD146C5CE357290\.BROWSE.VC.DB
Translation Unit Mappings:
[ EDITED_PATH.cpp - source TU]:
    EDITED_PATH
Translation Unit Configurations:
[ EDITED_PATH.cpp ]
    Process ID: 22292
    Memory Usage: 421 MB
    Compiler Path: C:\Program Files\LLVM\bin\clang-cl.exe
    Include paths:
        include: EDITED_PATH
        include: EDITED_PATH
        include: EDITED_PATH
        system include: C:\Program Files\LLVM\lib\clang\21\include
        system include: C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.50.35717\include
        system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt
        system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared
        system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um
        system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\winrt
        system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\cppwinrt
    Defines:
        WIN32
        _WINDOWS
    Standard Version: c++23
    IntelliSense Mode: windows-clang-x64
    Other Flags:
        --clang
        --clang_version=210108
        --ms_compatibility
Total Memory Usage: 421 MB
Browse Paths from compile_commands.json, from workspace folder: EDITED_PATH
    C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.50.35717\include
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\cppwinrt
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\winrt
    C:\Program Files\LLVM\lib\clang\21\include

------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 5423
Other Extensions

No response

Additional context

No response

主要言語
TypeScript
スター
6.2k
フォーク
1.7k
平均マージ
20時間 53分
マージ済み PR(30日)
41

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoft/vscode-cpptools のほかの issue

microsoft/vscode-cpptools の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。