| |
| // A Scalar with internal representation T+1 so that zero is internally |
| // represented by T(1). This is used to test memory fill. |
| // |
| template<typename T> |
| class OffByOneScalar { |
| public: |
| OffByOneScalar() : val_(1) {} |
| OffByOneScalar(const OffByOneScalar& other) { |
| *this = other; |
| } |
| OffByOneScalar& operator=(const OffByOneScalar& other) { |
| val_ = other.val_; |
| return *this; |
| } |
| |
| OffByOneScalar(T val) : val_(val + 1) {} |
| OffByOneScalar& operator=(T val) { |
| val_ = val + 1; |
| } |
| |
| operator T() const { |
| return val_ - 1; |
| } |
| |
| private: |
| T val_; |
| }; |