Hacer cumplir "noexcept" en std :: function?

Este código se compila y se ejecuta, arrojando elint:

#include <functional>

void r( std::function<void() noexcept> f ) { f(); }

void foo() { throw 1; }

int main()
{
    r(foo);
}

Sin embargo, me gustaría que el compilador rechazara la línear(foo);&nbsp;porquer&nbsp;solo se debe pasar unnoexcept&nbsp;función. losnoexcept&nbsp;El especificador parece ser ignorado. ¿Hay alguna forma de lograr eso?

Editar: esta pregunta es diferente a¿Se supone que el conocimiento sobre noexcept-ness se reenvía al pasar un puntero de función?&nbsp;porque estoy pidiendo un remedio, específicamente en el caso destd::function.