We recommend using Visual Studio 2017

Compiler Warning (level 4) C4611


The latest version of this topic can be found at Compiler Warning (level 4) C4611.

interaction between 'function' and C++ object destruction is non-portable

On some platforms, functions that include catch may not support C++ object semantics of destruction when out of scope.

To avoid unexpected behavior, avoid using catch in functions that have constructors and destructors.

This warning is only issued once; see pragma warning.