From 9524abcd28e64d2a37c6b064ca582cfa68ac1589 Mon Sep 17 00:00:00 2001 From: chacha21 Date: Fri, 28 Sep 2018 18:19:05 +0200 Subject: [PATCH] Merge pull request #12658 from chacha21:clr-mutex * hide use of std::mutex from /clr compilation under Visual Studio C++11 is not available when compiling with /clr under Visual Studio, thus opencv cannot be easily included. It is fixed by making a CEEMutex wrapper class, around an opaque implementation using std::mutex internally * fixed compilation outside of Visual Studio fixed compilation outside of Visual Studio by avoiding some macros * fixed indentation, prepare getting rid of CEEMutex/CEELockGuard fixed indentation After discussion, CEEMutex and CEELockGuard can be totally removed, letting the developer in a /clr context to provide his own implementation * remove CEEMutex/CEELockGuard --- modules/core/include/opencv2/core/utility.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/core/include/opencv2/core/utility.hpp b/modules/core/include/opencv2/core/utility.hpp index 4174de8..a906740 100644 --- a/modules/core/include/opencv2/core/utility.hpp +++ b/modules/core/include/opencv2/core/utility.hpp @@ -58,7 +58,9 @@ #include +#if !defined(_M_CEE) #include // std::mutex, std::lock_guard +#endif namespace cv { @@ -674,8 +676,10 @@ void Mat::forEach_impl(const Functor& operation) { /////////////////////////// Synchronization Primitives /////////////////////////////// +#if !defined(_M_CEE) typedef std::recursive_mutex Mutex; typedef std::lock_guard AutoLock; +#endif // TLS interface class CV_EXPORTS TLSDataContainer -- 2.7.4