FE_vector.h
上传用户:italyroyal
上传日期:2013-05-06
资源大小:473k
文件大小:1k
源码类别:

语音合成与识别

开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////////
  2. // This is a part of the Feature program.
  3. // Version: 1.0
  4. // Date: February 22, 2003
  5. // Programmer: Oh-Wook Kwon
  6. // Copyright(c) 2003 Oh-Wook Kwon. All rights reserved. owkwon@ucsd.edu
  7. ///////////////////////////////////////////////////////////////////////////////
  8. ///////////////////////////////////////////////////////////////////////////////
  9. // This class provides bound-checking capability to the vector container.
  10. // Only works in the debug mode.
  11. ///////////////////////////////////////////////////////////////////////////////
  12. #ifndef _VECTOR_DEBUG_H_ #define _VECTOR_DEBUG_H_
  13. #pragma warning(disable:4786)
  14. #include <vector>
  15. using namespace std;
  16. #ifdef _DEBUG #include <assert.h> template <typename T> class vectorDebug__ : public vector<T> { public: vectorDebug__(int n=0) : vector<T>(n) {} const T& operator[](int i) const; T& operator[](int i); }; template <typename T> const T& vectorDebug__<T>::operator[](int i) const { if(i < 0 || i >= this->size()){ int n=this->size(); fprintf(stderr, "ERROR: vector bound error (index=%d)n", n); assert(0); } return ((vector<T> *)this)->operator[](i); } template <typename T> T& vectorDebug__<T>::operator[](int i) { if(i < 0 || i >= this->size()){ int n=this->size(); fprintf(stderr, "ERROR: vector bound error (index=%d)n", n); assert(0); } return ((vector<T> *)this)->operator[](i); } #define vector vectorDebug__ #endif #endif