https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88631
Bug ID: 88631
Summary: CTAD cannot deduce from () value initialization
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: lichray at gmail dot com
Target Milestone: ---
#include <type_traits>
template<class T = void>
class A {};
// A() -> A<>;
int main()
{
auto x = A(); // #1
auto x2 = A{}; // #2
A y; // #3
}
#1 fails, #2 and #3 succeeds, adding or removing the deduction guide doesn't
matter (thankfully). This causes users not able to write std::less().