21 lines
		
	
	
		
			524 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			524 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
 | |
| // 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_;
 | |
| };
 | 
