endif()
endif()
+if(OPENCV_CAN_BREAK_BINARY_COMPATIBILITY)
+ add_definitions(-DOPENCV_CAN_BREAK_BINARY_COMPATIBILITY)
+endif()
+
if(CMAKE_COMPILER_IS_GNUCXX)
# High level of warnings.
add_extra_compiler_option(-W)
add_extra_compiler_option(-Wall)
add_extra_compiler_option(-Werror=return-type)
- #add_extra_compiler_option(-Werror=non-virtual-dtor)
+ if(OPENCV_CAN_BREAK_BINARY_COMPATIBILITY)
+ add_extra_compiler_option(-Werror=non-virtual-dtor)
+ endif()
add_extra_compiler_option(-Werror=address)
add_extra_compiler_option(-Werror=sequence-point)
add_extra_compiler_option(-Wformat)
virtual int channels(int i=-1) const;
virtual bool empty() const;
- /*virtual*/ ~_InputArray();
+#ifdef OPENCV_CAN_BREAK_BINARY_COMPATIBILITY
+ virtual ~_InputArray();
+#endif
int flags;
void* obj;
virtual void release() const;
virtual void clear() const;
- /*virtual*/ ~_OutputArray();
+#ifdef OPENCV_CAN_BREAK_BINARY_COMPATIBILITY
+ virtual ~_OutputArray();
+#endif
};
typedef const _InputArray& InputArray;
\*************************************************************************************************/
_InputArray::_InputArray() : flags(0), obj(0) {}
+#ifdef OPENCV_CAN_BREAK_BINARY_COMPATIBILITY
_InputArray::~_InputArray() {}
+#endif
_InputArray::_InputArray(const Mat& m) : flags(MAT), obj((void*)&m) {}
_InputArray::_InputArray(const vector<Mat>& vec) : flags(STD_VECTOR_MAT), obj((void*)&vec) {}
_InputArray::_InputArray(const double& val) : flags(FIXED_TYPE + FIXED_SIZE + MATX + CV_64F), obj((void*)&val), sz(Size(1,1)) {}
_OutputArray::_OutputArray() {}
+#ifdef OPENCV_CAN_BREAK_BINARY_COMPATIBILITY
_OutputArray::~_OutputArray() {}
+#endif
_OutputArray::_OutputArray(Mat& m) : _InputArray(m) {}
_OutputArray::_OutputArray(vector<Mat>& vec) : _InputArray(vec) {}
_OutputArray::_OutputArray(gpu::GpuMat& d_mat) : _InputArray(d_mat) {}
virtual ::size_t get_size() = 0;
virtual const std::type_info& type() = 0;
virtual void print(std::ostream& out, void* const* src) = 0;
+
+#ifdef OPENCV_CAN_BREAK_BINARY_COMPATIBILITY
virtual ~base_any_policy() {}
+#endif
};
template<typename T>
class CV_EXPORTS IMotionStabilizer
{
public:
+#ifdef OPENCV_CAN_BREAK_BINARY_COMPATIBILITY
virtual ~IMotionStabilizer() {}
+#endif
// assumes that [0, size-1) is in or equals to [range.first, range.second)
virtual void stabilize(