Does this code
try
{
opaque_function_that_might_throw_arbitrary_exception ();
}
catch (...)
{
throw;
}
differ in any way semantically from just calling
opaque_function_that_might_throw_arbitrary_exception ();
in C++? Are there differences between the standards?
I though both snippets would be semantically identical, but I checked with the compiler-explorer and it generates different code, even on the highest optimization level. This made me wonder if there is something I'm missing.