microsoft / microsoft/vscode-cpptools
Intellisense fails to deduce template arguments for aliases
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 6.2k
- Fork
- 1.7k
- Merge medio
- 14h 46m
- PR unite (30g)
- 61
Descrizione
Bug type: Language Service
Describe the bug
- OS and Version: Windows 10 Pro 21H2
- VS Code Version: 1.63.1 (user setup) (fe719cd3e5825bf14e14182fddeb88ee8daf044f)
- C/C++ Extension Version: 1.7.1: October 19, 2021
- Other extensions you installed (and if the issue persists after disabling them): many, but only cpptools needed to reproduce
- Not using ssh remote
Since C++20 (P1814R0) the compiler is supposed to be able to deduce template argruments for template aliases, so following code is legal:
template <typename T>
struct MyTemplate
{
MyTemplate(T) { }
};
template <typename T>
using MyAlias = MyTemplate<T>;
int main()
{
auto mt = MyTemplate(0); // intellisense OK
auto ma = MyAlias(0); // intellisense red squiggles
return 0;
}
The above code compiles fine using GCC 10.2.0 from mingw, specifically the current winlibs package from chocolatey.
On the line marked as // intellisense red squiggles, intellisense compains about missing arguments for template alias "My Alias" (c/c++(441)) (see (german) screenshot below)

Steps to reproduce
- Put above code in a new c++ project that is configured to use C++20
settings.json:
{
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"C_Cpp.default.cppStandard": "c++20"
}
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riprodurre l'esempio C++20 del report in un nuovo progetto usando il settings.json fornito e confrontare IntelliSense con GCC 10.2.0. Analizzare la diagnostica del servizio linguistico su MyAlias(0); il lavoro è completato quando la deduzione degli argomenti di template per l'alias non produce più sottolineature ondulate rosse per argomenti mancanti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100