microsoft / microsoft/vscode-cpptools
spurious "class has more than one default constructor" error
Offen
@sean-mcmanus arbeitet bereits daran.
Seit 09.9.2026.
bug
fixed
Language Service
parser
verified
- Vorherrschende Sprache
- TypeScript
- Sterne
- 6.2k
- Forks
- 1.7k
- Ø Merge
- 14 Std. 46 Min.
- Gemergte PRs (30 T.)
- 61
Beschreibung
Environment
- OS and Version: x64, Arch Linux (
7.2.3.arch1-2) - VS Code Version: 1.136.1 commit a44adf7f53e00964ab890f9f8758a334f1fc15bc
- C/C++ Extension Version: 1.34.3 pre-release
- If using SSH remote, specify OS of remote machine: N/A
Bug Summary and Steps to Reproduce
Bug Summary: IntelliSense gives a "class has more than one default constructor" error on well-formed code (at least both GCC and Clang accept it):
struct B1{};
struct B2{};
struct D : B1, B2{
using B1::B1;
using B2::B2;
D(int){}
};
int main(){
D v; // error on this line
(void)v;
return 0;
}
Steps to reproduce:
- Create a new folder, open it as a workspace, and copy bug.cpp into it
- Open the file
- See error
Expected behavior: No error is raised.
Configuration and Logs
c_cpp_properties.json: (None used)
"Log Diagnostics" output:
-------- Diagnostics - 9/8/2026, 12:29:01 PM
Version: 1.34.3
Current Configuration:
{
"name": "Linux",
"includePath": [
"/home/marr-ales-fios/include"
],
"defines": [],
"compilerArgs": [
"-m64",
"-freflection"
],
"cStandard": "c23",
"cppStandard": "c++26",
"intelliSenseMode": "linux-gcc-x64",
"intelliSenseModeIsExplicit": true,
"cStandardIsExplicit": true,
"cppStandardIsExplicit": true,
"mergeConfigurations": false,
"recursiveIncludes": {},
"recursiveIncludesPriorityIsExplicit": false,
"recursiveIncludesOrderIsExplicit": false,
"compilerPath": "/usr/bin/g++",
"compilerPathIsExplicit": true,
"browse": {
"limitSymbolsToIncludedHeaders": true
}
}
Modified Settings:
{
"C_Cpp.intelliSenseUpdateDelay": 500,
"C_Cpp.autocompleteAddParentheses": true,
"C_Cpp.suggestSnippets": false,
"C_Cpp.default.includePath": [
"/home/marr-ales-fios/include"
],
"C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
"C_Cpp.default.compilerPath": "/usr/bin/g++",
"C_Cpp.default.compilerArgs": [
"-m64",
"-freflection"
],
"C_Cpp.default.cStandard": "c23",
"C_Cpp.default.cppStandard": "c++26",
"C_Cpp.codeAnalysis.updateDelay": 1000,
"C_Cpp.debugShortcut": false,
"C_Cpp.intelliSenseMemoryLimit": 6144,
"C_Cpp.vcpkg.enabled": false,
"C_Cpp.experimentalFeatures": "enabled",
"C_Cpp.copilotHover": "disabled"
}
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": true,
"editorInlayHintsEnabled": true,
"editorParameterHintsEnabled": true,
"searchExclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/*.code-search": true
},
"workbenchSettingsEditor": "ui"
}
cpptools version (native): 1.34.3.0
Current database path: /home/marr-ales-fios/.cache/vscode-cpptools/20411a271e6efead7eb399ae3cf81ba7/.browse.VC.db
Translation Unit Mappings:
[ /home/marr-ales-fios/Projects/cppbug/bug.cpp - source TU]:
Translation Unit Configurations:
[ /home/marr-ales-fios/Projects/cppbug/bug.cpp ]
Process ID: 8913
Memory Usage: 24 MB
Compiler Path: /usr/bin/g++
Language: C++
Include Paths:
include: /home/marr-ales-fios/include
system include: /usr/include/c++/16
system include: /usr/include/c++/16/x86_64-pc-linux-gnu
system include: /usr/include/c++/16/backward
system include: /usr/lib/gcc/x86_64-pc-linux-gnu/16/include
system include: /usr/local/include
system include: /usr/include
Standard Version: c++26
IntelliSense Mode: linux-gcc-x64
Other Flags:
--g++
--gnu_version=160201
Total Memory Usage: 24 MB
Language server logging: lslogs.txt
Other Extensions
No response
Additional context
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Bewertung
Dieses Issue wurde noch nicht bewertet.