Erzwinge "noexcept" auf std :: function?
Dieser Code wird kompiliert und ausgeführt und wirft dasint
:
#include <functional>
void r( std::function<void() noexcept> f ) { f(); }
void foo() { throw 1; }
int main()
{
r(foo);
}
Howeve, r Ich möchte, dass der Compiler die Zeile ablehntr(foo);
weilr
sollte nur ein @ übergeben werdnoexcept
Funktion. Dasnoexcept
-Spezifizierer scheint ignoriert zu werden. Gibt es eine Möglichkeit, das zu erreichen?
Bearbeiten: Diese Frage unterscheidet sich vonIst das Wissen über Noexcept-ness weiterzuleiten, wenn ein Funktionszeiger umgangen wird? weil ich um eine Abhilfe bitte, speziell beistd::function
.