https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90426
--- Comment #4 from Mateusz Pusz <mateusz.pusz at gmail dot com> --- (In reply to Marek Polacek from comment #1) > This compiles if I use {} instead of (): > > struct gram : unit<ratio(std::milli{})> {}; I know that it compiles fine in the following cases: struct gram : unit<ratio{std::milli{}}> {}; struct gram : unit<ratio(std::milli{})> {}; // not treated as a function type struct gram : unit<ratio{std::milli()}> {}; So the only one lacking is: struct gram : unit<ratio(std::milli())> {};