https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61182
--- Comment #3 from pdaou...@aldebaran-robotics.com --- I am no c++ expert but my guess is that it should be allowed to have qualified function types as long as you don't try to instantiate that type. The problem in our code is that we use boost::remove_const (which should be a noop in this case I believe) which uses a trick involving pointers similar to what I wrote in the attached example and does not compile with 4.9. Still, if the standard says that it is not allowed we can work around it, but then should I file a bug to clang?