Vector.h 609 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef ANKI_UTIL_VECTOR_H
  2. #define ANKI_UTIL_VECTOR_H
  3. #include "anki/util/Assert.h"
  4. #include "anki/util/Functions.h"
  5. #include <vector>
  6. namespace anki {
  7. /// @addtogroup util
  8. /// @{
  9. template<typename T>
  10. using Vector = std::vector<T>;
  11. template<typename T>
  12. class PtrVector: public Vector<T*>
  13. {
  14. public:
  15. typedef Vector<T*> Base;
  16. ~PtrVector()
  17. {
  18. for(typename Base::iterator it = Base::begin(); it != Base::end(); it++)
  19. {
  20. propperDelete(*it);
  21. }
  22. }
  23. typename Base::iterator erase(typename Base::iterator pos)
  24. {
  25. propperDelete(*pos);
  26. return Base::erase(pos);
  27. }
  28. };
  29. } // end namespace anki
  30. #endif