#ifndef RXVT_VEC_H #define RXVT_VEC_H template static inline T min (T a, long b) { return a < b ? a : b; } template static inline T max (T a, long b) { return a > b ? a : b; } #include #include "simplevec.h" #if 0 template struct rxvt_vec : simplevec { typedef T *iterator; void push_back (T d) { simplevec::push_back ((void *)d); } T pop_back () { return (T*)simplevec::pop_back (); } void erase (int i) { erase (begin () + i); } void erase (iterator i) { simplevec::erase ((void **)i); } iterator begin () const { return (iterator)simplevec::begin (); } iterator end () const { return (iterator)simplevec::end (); } T &operator [](int i) { return *(T *)(&((*(simplevec *)this)[i])); } const T &operator [](int i) const { return *(const T *)(&((*(const simplevec *)this)[i])); } }; #endif template I find(I first, I last, const T& value) { while (first != last && *first != value) ++first; return first; } #endif