Aplicar "noexcept" na função std ::?
Esse código compila e executa, lançando oint
:
#include <functional>
void r( std::function<void() noexcept> f ) { f(); }
void foo() { throw 1; }
int main()
{
r(foo);
}
No entanto, eu gostaria que o compilador rejeitasse a linhar(foo);
Porquer
só deve ser passado umnoexcept
função. onoexcept
O especificador parece ser ignorado. Existe alguma maneira de conseguir isso?
Edit: Esta pergunta é diferente deO conhecimento sobre noexcept-ness deve ser encaminhado ao passar por um ponteiro de função? porque estou pedindo um remédio, especificamente no caso destd::function
.