Merge pull request #13947 from JoeHowse:4.0.1-patches
authorJoeHowse <josephhowse@nummist.com>
Sat, 2 Mar 2019 16:00:32 +0000 (12:00 -0400)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 2 Mar 2019 16:00:32 +0000 (19:00 +0300)
* core, stitching: revise syntax to support Visual C++ 2013

* stitching: revise syntax again to support Visual C++ 2013 and other compilers

* stitching: minor update to clarify changes

modules/core/src/persistence_json.cpp
modules/stitching/include/opencv2/stitching.hpp
modules/stitching/src/stitcher.cpp

index ace7394..ae678e1 100644 (file)
@@ -72,7 +72,7 @@ public:
         }
 
         char* ptr = fs->bufferPtr();
-        if( ptr > fs->bufferStart() + current_struct.indent && !FileNode::FileNode::isEmptyCollection(struct_flags) )
+        if( ptr > fs->bufferStart() + current_struct.indent && !FileNode::isEmptyCollection(struct_flags) )
             *ptr++ = ' ';
         *ptr++ = FileNode::isMap(struct_flags) ? '}' : ']';
         fs->setBufferPtr(ptr);
@@ -171,7 +171,7 @@ public:
         {
             int new_offset;
             ptr = fs->bufferPtr();
-            if( !FileNode::FileNode::isEmptyCollection(struct_flags) )
+            if( !FileNode::isEmptyCollection(struct_flags) )
                 *ptr++ = ',';
             new_offset = static_cast<int>(ptr - fs->bufferStart() + key_len + data_len);
             if( new_offset > fs->wrapMargin() && new_offset - current_struct.indent > 10 )
@@ -184,7 +184,7 @@ public:
         }
         else
         {
-            if ( !FileNode::FileNode::isEmptyCollection(struct_flags) )
+            if ( !FileNode::isEmptyCollection(struct_flags) )
             {
                 ptr = fs->bufferPtr();
                 *ptr++ = ',';
index 42f63df..016e7d8 100644 (file)
@@ -142,7 +142,12 @@ public:
      * When setting a resolution for stitching, this values is a placeholder
      * for preserving the original resolution.
      */
-    static constexpr const double ORIG_RESOL = -1.0;
+#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900/*MSVS 2015*/)
+    static constexpr double ORIG_RESOL = -1.0;
+#else
+    // support MSVS 2013
+    static const double ORIG_RESOL; // Initialized in stitcher.cpp
+#endif
 
     enum Status
     {
index 3229a87..58aa188 100644 (file)
 
 namespace cv {
 
+#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900/*MSVS 2015*/)
+// Stitcher::ORIG_RESOL is initialized in stitching.hpp.
+#else
+const double Stitcher::ORIG_RESOL = -1.0;
+#endif
+
 Ptr<Stitcher> Stitcher::create(Mode mode)
 {
     Ptr<Stitcher> stitcher = makePtr<Stitcher>();