Repository navigation
IntelliSense reports an error on a valid deduction guide (error: the return type must directly designate a specialization of the associated class template) #14824
Copy link
Copy link
Open
Labels
Language ServicebugfixedCheck the Milestone for the release in which the fix is or will be available.Check the Milestone for the release in which the fix is or will be available.
Milestone
Description
Environment
- OS: macOS 27.0.1 (Apple Silicon)
- VS Code version: 1.140.0
- C/C++ extension version: 1.34.4 (darwin-arm64)
- Compilers that accept the code: Apple clang 21.0.0 (clang-2100.3.34.2), GCC 16.2.0 (
-std=c++23 -Wall -Wextra -pedantic)
Bug Summary and Steps to Reproduce
Bug Summary:
IntelliSense reports an error on a valid deduction guide whose return type is an explicit specialization of the class template. Clang and GCC compile and run the code without warnings.
Steps to reproduce:
Set the "cppStandard": "gnu++20".
#include <cstddef>
#include <span>
using std::size_t;
template< size_t i = std::dynamic_extent, size_t s = std::dynamic_extent >
struct slice
{
static constexpr size_t index = i, size = s;
};
template<>
struct slice< std::dynamic_extent, std::dynamic_extent >
{
size_t index = 0, size = 0;
constexpr slice() noexcept = default;
constexpr slice( size_t i, size_t s ) noexcept : index( i ), size( s ) {}
};
slice() -> slice<>;
slice( size_t, size_t ) -> slice<>; // error: "the return type must directly designate a specialization of the associated class template"
template< size_t i, size_t s >
constexpr slice< i, s > const_slice;
auto s0 = slice{}; // OK
auto s1 = slice{ 1, 2 }; // error
auto s2 = slice< 3, 4 >{}; // OK
auto s3 = const_slice< 5, 6 >; // OK
slice s5 = { 2, 4 }; // error
slice s6; // OK
size_t n = 1;
auto s7 = slice{ n, 3 }; // error
int main() {}Update: switching to 1.35.3 only partly fixed the problem. Now the error occurs at these lines:
slice() -> slice<>; // redeclaration of deduction guide "()->slice<18446744073709551615UL, 18446744073709551615UL>" (previous declaration at line 30)
slice( size_t, size_t ) -> slice<>; // rredeclaration of deduction guide "(size_t, size_t)->slice<18446744073709551615UL, 18446744073709551615UL>" (previous declaration at line 32)
Configuration and Logs
-------- Diagnostics - 09/10/2026, 11:09:54
Version: 1.35.3
Current Configuration:
{
"name": "Mac",
"includePath": [
"/Users/dom/Repositories/Foo/**"
],
"defines": [],
"compilerPath": "/usr/bin/clang",
"cStandard": "gnu17",
"intelliSenseMode": "macos-clang-arm64",
"compilerPathInCppPropertiesJson": "/usr/bin/clang",
"cppStandard": "c++26",
"intelliSenseModeIsExplicit": false,
"cStandardIsExplicit": false,
"cppStandardIsExplicit": true,
"mergeConfigurations": false,
"recursiveIncludes": {},
"recursiveIncludesPriorityIsExplicit": false,
"recursiveIncludesOrderIsExplicit": false,
"compilerPathIsExplicit": false,
"browse": {
"limitSymbolsToIncludedHeaders": true
}
}
Modified Settings:
{
"C_Cpp.default.cppStandard": "c++26",
"C_Cpp.copilotHover": "disabled"
}
Additional Tracked Settings:
{
"editorTabSize": 4,
"editorInsertSpaces": true,
"editorAutoClosingBrackets": "languageDefined",
"filesEncoding": "utf8",
"filesAssociations": {},
"filesExclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/.jj": 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.35.3.0
Current database path: /Users/dom/Library/Caches/vscode-cpptools/3e0375b3f54b329c80d0cabaf418165d/.browse.VC.db
Translation Unit Mappings:
[ /Users/dom/Repositories/Foo/Projects/Engine/Source/Engine.cpp - source TU]:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctype.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_time.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/signal.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/math.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/resource.h
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_max_align_t.h
/Users/dom/Repositories/Foo/Projects/Engine/Source/Foundation/Math/Matrix/MatrixForward.hpp
/Users/dom/Repositories/Foo/Projects/Engine/Source/Foundation/Math/Matrix/Slice.hpp
/Users/dom/Repositories/Foo/Projects/Engine/Source/Foundation/Math/Matrix/StaticMatrix.hpp
/Users/dom/Repositories/Foo/Projects/Engine/Source/Foundation/Math/Vector/VectorForward.hpp
Translation Unit Configurations:
[ /Users/dom/Repositories/Foo/Projects/Engine/Source/Engine.cpp ]
Process ID: 82533
Memory Usage: 447 MB
Compiler Path: /usr/bin/clang
Language: C++
Include Paths:
system include: /usr/local/include
system include: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1
system include: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include
system include: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
system include: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
system framework search path (default): /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks
system framework search path (default): /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/SubFrameworks
include (recursive): /Users/dom/Repositories/Foo
Standard Version: c++26
IntelliSense Mode: macos-clang-arm64
Other Flags:
--clang
--clang_version=210106
Total Memory Usage: 447 MBOther Extensions
No response
Additional context
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Language ServicebugfixedCheck the Milestone for the release in which the fix is or will be available.Check the Milestone for the release in which the fix is or will be available.
Type
Projects
- StatusShow more project fieldsDone
Activity