https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96877
--- Comment #4 from Ian Henriksen <insertinterestingnamehere at gmail dot com> --- It's worth noting that, with g++ using function_type = void (*)(void*) noexcept; actually works, but typedef void(*function_type)(void*) noexcept; does not. clang++ rejects both though.