https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96877
--- Comment #3 from Ian Henriksen <insertinterestingnamehere at gmail dot com> --- The goal of doing it that way was get the exception specification onto the pointer type in C++11 and C++14. The intent was to get the equivalent of typedef void(*function_type)(void*) noexcept; but with standards earlier than C++17.