https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65382
Bug ID: 65382 Summary: pointer-to-noexcept-function typealias allowed via using Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: vgheorgh at gmail dot com According to 15.4 Exception specifications [except.spec]/2, the following code should be rejected, #include <iostream> using fptr = void(*)() noexcept; // should not be accepted // typedef void (*FPTR)() noexcept; // rejected by the compiler void f() noexcept { std::cout << "void f() noexcept" << std::endl; } int main() { fptr fp = f; fp(); } Replacing using with a typedef makes the compiler emit an error, however the code above compiles just fine, and it shouldn't.