Concept always fails when it has lambda inside it
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず、報告された C++23 concept を即時呼び出しラムダで再現し、IntelliSense の診断と issue に記載されているコンパイラの動作を比較します。両方の最小例が受け入れられ、Test() の呼び出しで関数テンプレートのインスタンスが一致しないという報告が出なくなれば、作業は完了です。
索引モデルが issue の本文から書いたものです。
説明
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:
- Write one the following test:
template <typename T>
concept HasField = requires { []() {}(); };
template <typename T>
requires HasField<T>
consteval void Test()
{
}
int main()
{
Test<int>();
}
- 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
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/vscode-cpptools のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
microsoft/vscode-cpptools#14817 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 15/100
microsoft/vscode-cpptools#14816 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
microsoft/vscode-cpptools#14815 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
microsoft/vscode-cpptools#14807 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
microsoft/vscode-cpptools#14806 ·
メンテナーはふだん 1 日以内に返信
microsoft/vscode-cpptools の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
solana-foundation/solana-com#2245 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
`document.cookie` with `max-age=0` does not delete the cookie対応中かも @BartInTheField が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
capricorn86/happy-dom#2460 ·
メンテナーはふだん 2 日以内に返信