MatCommaInitializer_(Mat_<_Tp>* _m);
//! the operator that takes the next value and put it to the matrix
template<typename T2> MatCommaInitializer_<_Tp>& operator , (T2 v);
- //! the conversion operator
- //operator Mat_<_Tp>() const;
//! another form of conversion operator
Mat_<_Tp> operator *() const;
operator Mat_<_Tp>() const;
- virtual void assignTo(Mat& m, int type=-1) const;
protected:
MatIterator_<_Tp> it;
};
return Mat_<_Tp>(*this->it.m);
}
-template<typename _Tp> inline void
-MatCommaInitializer_<_Tp>::assignTo(Mat& m, int type) const
-{
- Mat_<_Tp>(*this).assignTo(m, type);
-}
-
template<typename _Tp, typename T2> static inline MatCommaInitializer_<_Tp>
operator << (const Mat_<_Tp>& m, T2 val)
{
void swap( Mat& a, Mat& b )
{
- int *ap = (int*)&a, *bp = (int*)&b;
+ /*int *ap = (int*)&a, *bp = (int*)&b;
size_t i, n = sizeof(Mat)/sizeof(ap[0]);
for( i = 0; i < n; i++ )
- std::swap(ap[i], bp[i]);
+ std::swap(ap[i], bp[i]);*/
+ std::swap(a.flags, b.flags);
+ std::swap(a.dims, b.dims);
+ std::swap(a.rows, b.rows);
+ std::swap(a.cols, b.cols);
+ std::swap(a.data, b.data);
+ std::swap(a.refcount, b.refcount);
+ std::swap(a.datastart, b.datastart);
+ std::swap(a.dataend, b.dataend);
+ std::swap(a.datalimit, b.datalimit);
+ std::swap(a.allocator, b.allocator);
+
+ std::swap(a.size.p, b.size.p);
+ std::swap(a.step.p, b.step.p);
+ std::swap(a.step.buf[0], b.step.buf[0]);
+ std::swap(a.step.buf[1], b.step.buf[1]);
if( a.step.p == b.step.buf )
{