1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-09-20 17:25:37 +01:00

Rely on default constructors

This commit is contained in:
Peter Boyle 2015-05-23 09:33:42 +01:00
parent 3954792f37
commit 0b165afd9e

View File

@ -34,7 +34,13 @@ public:
// Scalar no action // Scalar no action
// template<int Level> using tensor_reduce_level = typename iScalar<GridTypeMapper<vtype>::tensor_reduce_level<Level> >; // template<int Level> using tensor_reduce_level = typename iScalar<GridTypeMapper<vtype>::tensor_reduce_level<Level> >;
iScalar()=default; iScalar() = default;
/*
iScalar(const iScalar<vtype> &copyme)=default;
iScalar(iScalar<vtype> &&copyme)=default;
iScalar<vtype> & operator= (const iScalar<vtype> &copyme) = default;
iScalar<vtype> & operator= (iScalar<vtype> &&copyme) = default;
*/
iScalar(scalar_type s) : _internal(s) {};// recurse down and hit the constructor for vector_type iScalar(scalar_type s) : _internal(s) {};// recurse down and hit the constructor for vector_type
iScalar(const Zero &z){ *this = zero; }; iScalar(const Zero &z){ *this = zero; };
@ -45,8 +51,6 @@ public:
friend strong_inline void vstream(iScalar<vtype> &out,const iScalar<vtype> &in){ friend strong_inline void vstream(iScalar<vtype> &out,const iScalar<vtype> &in){
vstream(out._internal,in._internal); vstream(out._internal,in._internal);
} }
friend strong_inline void zeroit(iScalar<vtype> &that){ friend strong_inline void zeroit(iScalar<vtype> &that){
zeroit(that._internal); zeroit(that._internal);
} }
@ -76,11 +80,9 @@ public:
*this = (*this)+r; *this = (*this)+r;
return *this; return *this;
} }
strong_inline vtype & operator ()(void) { strong_inline vtype & operator ()(void) {
return _internal; return _internal;
} }
strong_inline const vtype & operator ()(void) const { strong_inline const vtype & operator ()(void) const {
return _internal; return _internal;
} }
@ -125,6 +127,12 @@ public:
enum { TensorLevel = GridTypeMapper<vtype>::TensorLevel + 1}; enum { TensorLevel = GridTypeMapper<vtype>::TensorLevel + 1};
iVector(const Zero &z){ *this = zero; }; iVector(const Zero &z){ *this = zero; };
iVector() =default; iVector() =default;
/*
iVector(const iVector<vtype,N> &copyme)=default;
iVector(iVector<vtype,N> &&copyme)=default;
iVector<vtype,N> & operator= (const iVector<vtype,N> &copyme) = default;
iVector<vtype,N> & operator= (iVector<vtype,N> &&copyme) = default;
*/
iVector<vtype,N> & operator= (const Zero &hero){ iVector<vtype,N> & operator= (const Zero &hero){
zeroit(*this); zeroit(*this);
@ -205,8 +213,12 @@ public:
iMatrix(const Zero &z){ *this = zero; }; iMatrix(const Zero &z){ *this = zero; };
iMatrix() =default; iMatrix() =default;
/*
iMatrix(const iMatrix<vtype,N> &copyme)=default;
iMatrix(iMatrix<vtype,N> &&copyme)=default;
iMatrix<vtype,N> & operator= (const iMatrix<vtype,N> &copyme) = default;
iMatrix<vtype,N> & operator= (iMatrix<vtype,N> &&copyme) = default;
*/
iMatrix<vtype,N> & operator= (const Zero &hero){ iMatrix<vtype,N> & operator= (const Zero &hero){
zeroit(*this); zeroit(*this);
return *this; return *this;