/* * CheckVector.h * */ #ifndef TOOLS_CHECKVECTOR_H_ #define TOOLS_CHECKVECTOR_H_ #include using namespace std; template class CheckVector : public vector { public: CheckVector() : vector() {} CheckVector(size_t size) : vector(size) {} CheckVector(size_t size, const T& def) : vector(size, def) {} #ifdef CHECK_SIZE T& operator[](size_t i) { return this->at(i); } const T& operator[](size_t i) const { return this->at(i); } #else T& at(size_t i) { return (*this)[i]; } const T& at(size_t i) const { return (*this)[i]; } #endif }; #endif /* TOOLS_CHECKVECTOR_H_ */