HomePhabricator

[C++17] Fix class template argument deduction for default constructors without…

Description

[C++17] Fix class template argument deduction for default constructors without an initializer

Summary:
As the title says, this makes following code compile:

template<typename> struct Foo {};
Foo() -> Foo<void>;

Foo f; // ok

Thanks Nicolas Lesser for coining the fix.

Reviewers: rsmith, lichray

Reviewed By: rsmith, lichray

Subscribers: lichray, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D38216