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);
porquer
solo se debe pasar unnoexcept
función. losnoexcept
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? porque estoy pidiendo un remedio, específicamente en el caso destd::function
.