Revision 8e75a862f1d1f7aa6cfe50e796d77bd47b622ff9 authored by Thomas Fischer on 05 May 2023, 06:35:32 UTC, committed by Thomas Fischer on 11 May 2023, 09:30:53 UTC
1 parent 150a287
Raw File
DisableFPE.h
/**
 * \file
 * \copyright
 * Copyright (c) 2012-2023, OpenGeoSys Community (http://www.opengeosys.org)
 *            Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 *
 */

#if !defined(_WIN32) && !defined(__APPLE__)
#include <cfenv>

class DisableFPE
{
public:
    DisableFPE()
    {
        fegetenv(&fe_env);     // Store floating-point exception handling.
        fesetenv(FE_DFL_ENV);  // Set default environment effectively disabling
                               // exceptions.
    }

    ~DisableFPE()
    {
        fesetenv(&fe_env);  // Restore floating-point exception handling.
    }

private:
    fenv_t fe_env;
};

#else

// No-op for Windows and Apple
class DisableFPE
{
};

#endif
back to top