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