Mercurial > mm7
view NZIArray.h @ 2198:d9caf2b3d8d5
draw FlyAction and WaterWalk icons
author | Ritor1 |
---|---|
date | Sun, 02 Feb 2014 00:10:40 +0600 |
parents | f8414042db1f |
children |
line wrap: on
line source
#pragma once #include <array> #include <assert.h> template<class _Ty, size_t _Size> class NZIArray : std::array<_Ty, _Size> { public: reference ZerothIndex() { return std::array<_Ty, _Size>::operator [](0); } reference operator[](size_type _Pos) { // subscript nonmutable sequence #if _ITERATOR_DEBUG_LEVEL == 2 assert(_Pos != 0 && "not allowed to access zeroth element"); #elif _ITERATOR_DEBUG_LEVEL == 1 _SCL_SECURE_VALIDATE_RANGE(_Pos != 0); #endif /* _ITERATOR_DEBUG_LEVEL */ __analysis_assume(_Pos != 0); return std::array<_Ty, _Size>::operator [](_Pos); } const_reference operator[](size_type _Pos) const { // subscript nonmutable sequence #if _ITERATOR_DEBUG_LEVEL == 2 assert(_Pos != 0 && "not allowed to access zeroth element"); #elif _ITERATOR_DEBUG_LEVEL == 1 _SCL_SECURE_VALIDATE_RANGE(_Pos != 0); #endif /* _ITERATOR_DEBUG_LEVEL */ __analysis_assume(_Pos != 0); return std::array<_Ty, _Size>::operator [](_Pos); } };