operator _Tp* ();
operator const _Tp*() const;
- bool operator==(const Ptr<_Tp>& ptr) const;
-
_Tp* obj; //< the object pointer.
int* refcount; //< the associated reference counter
};
+template<class T, class U> bool operator==(Ptr<T> const & a, Ptr<U> const & b);
+template<class T, class U> bool operator!=(Ptr<T> const & a, Ptr<U> const & b);
+
//////////////////////// Input/Output Array Arguments /////////////////////////////////
return p;
}
-template<typename _Tp> inline bool Ptr<_Tp>::operator==(const Ptr<_Tp>& _ptr) const
-{
- return refcount == _ptr.refcount;
-}
+template<class _Tp, class _Tp2> inline bool operator==(const Ptr<_Tp>& a, const Ptr<_Tp2>& b) { return a.refcount == b.refcount; }
+template<class _Tp, class _Tp2> inline bool operator!=(const Ptr<_Tp>& a, const Ptr<_Tp2>& b) { return a.refcount != b.refcount; }
+
+
+
//// specializied implementations of Ptr::delete_obj() for classic OpenCV types
return;
}
Ptr<CvSparseMat> m = (CvSparseMat*)cvRead((CvFileStorage*)node.fs, (CvFileNode*)*node);
- CV_Assert(CV_IS_SPARSE_MAT(m));
+ CV_Assert(CV_IS_SPARSE_MAT(m.obj));
SparseMat(m).copyTo(mat);
}
{
fs << "indexParams" << "[";
- if (indexParams != 0)
+ if (indexParams)
{
std::vector<std::string> names;
std::vector<int> types;
fs << "]" << "searchParams" << "[";
- if (searchParams != 0)
+ if (searchParams)
{
std::vector<std::string> names;
std::vector<int> types;