Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / thirdparty / fluid / modules / gapi / include / opencv2 / gapi / util / throw.hpp
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 // Copyright (C) 2018-2019 Intel Corporation
6
7
8 #ifndef OPENCV_GAPI_UTIL_THROW_HPP
9 #define OPENCV_GAPI_UTIL_THROW_HPP
10
11 #include <utility>  // std::forward
12
13 #if !defined(__EXCEPTIONS)
14 #include <stdlib.h>
15 #include <stdio.h>
16 #endif
17
18 namespace cv
19 {
20 namespace util
21 {
22 template <class ExceptionType>
23 [[noreturn]] void throw_error(ExceptionType &&e)
24 {
25 #if defined(__EXCEPTIONS) || defined(_CPPUNWIND)
26     throw std::forward<ExceptionType>(e);
27 #else
28     fprintf(stderr, "An exception thrown! %s\n" , e.what());
29     fflush(stderr);
30     abort();
31 #endif
32 }
33 } // namespace util
34 } // namespace cv
35
36 #endif // OPENCV_GAPI_UTIL_THROW_HPP