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