spurious "class has more than one default constructor" error

Open
#14,746 1 comment 0 reactions 1 assignee View on GitHub

@sean-mcmanus is already working on this.

Since Sep 9, 2026.

Assessment

This issue has not been assessed yet.

Description

bug fixed Language Service parser verified
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:

  1. Create a new folder, open it as a workspace, and copy bug.cpp into it
  2. Open the file
  3. 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

Dominant language
TypeScript
Stars
6.2k
Forks
1.7k
Avg merge
14h 46m
Merged PRs (30d)
61

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/vscode-cpptools

All issues in microsoft/vscode-cpptools

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.