|  | 
 | // A Scalar that asserts for uninitialized access. | 
 | template<typename T> | 
 | class SafeScalar { | 
 |  public: | 
 |   SafeScalar() : initialized_(false) {} | 
 |   SafeScalar(const SafeScalar& other) { | 
 |     *this = other; | 
 |   } | 
 |   SafeScalar& operator=(const SafeScalar& other) { | 
 |     val_ = T(other); | 
 |     initialized_ = true; | 
 |     return *this; | 
 |   } | 
 |    | 
 |   SafeScalar(T val) : val_(val), initialized_(true) {} | 
 |   SafeScalar& operator=(T val) { | 
 |     val_ = val; | 
 |     initialized_ = true; | 
 |   } | 
 |    | 
 |   operator T() const { | 
 |     VERIFY(initialized_ && "Uninitialized access."); | 
 |     return val_; | 
 |   } | 
 |   | 
 |  private: | 
 |   T val_; | 
 |   bool initialized_; | 
 | }; |