// A Scalar that asserts for uninitialized access. template 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_; };