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().