1 // This file is part of OpenCV project. 2 // It is subject to the license terms in the LICENSE file found in the top-level directory 3 // of this distribution and at http://opencv.org/license.html. 4 5 #ifndef OPENCV_CORE_DETAILS_EXCEPTION_PTR_H 6 #define OPENCV_CORE_DETAILS_EXCEPTION_PTR_H 7 8 #ifndef CV__EXCEPTION_PTR 9 # if defined(__ANDROID__) && defined(ATOMIC_INT_LOCK_FREE) && ATOMIC_INT_LOCK_FREE < 2 10 # define CV__EXCEPTION_PTR 0 // Not supported, details: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58938 11 # elif defined(CV_CXX11) 12 # define CV__EXCEPTION_PTR 1 13 # elif defined(_MSC_VER) 14 # define CV__EXCEPTION_PTR (_MSC_VER >= 1600) 15 # elif defined(__clang__) 16 # define CV__EXCEPTION_PTR 0 // C++11 only (see above) 17 # elif defined(__GNUC__) && defined(__GXX_EXPERIMENTAL_CXX0X__) 18 # define CV__EXCEPTION_PTR (__GXX_EXPERIMENTAL_CXX0X__ > 0) 19 # endif 20 #endif 21 #ifndef CV__EXCEPTION_PTR 22 # define CV__EXCEPTION_PTR 0 23 #elif CV__EXCEPTION_PTR 24 # include <exception> // std::exception_ptr 25 #endif 26 27 #endif // OPENCV_CORE_DETAILS_EXCEPTION_PTR_H 28