https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87712
Bug ID: 87712 Summary: class template argument deduction fails with wrapped parentheses Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: barry.revzin at gmail dot com Target Milestone: --- Reduced from https://stackoverflow.com/q/52950967/2069064: template <class T> struct lit { lit(T ); }; template <typename T> void operator+(lit<T>, int); int main() { auto a = lit('b'); // ok auto b = (lit('b')); // ok lit('b') + 1; // ok (lit('b')) + 1; // error: missing template arguments after 'lit' (lit('b') + 1); // ok }