I have found an application for this obscure operation, but unfortunately it doesn't work. how would you suggest to implement the following header-file to avoid these errors in gcc-4.1.2:
infinilife.h:56: error: invalid cast from type '__gnu_cxx::__normal_iterator<const hull8conv::forwards*, std::vecto r<hull8conv::forwards, std::allocator<hull8conv::forwards> > >' to type '__gnu_cxx::__normal_iterator<const unsigned int*, std::vector< unsigned int, std::allocator<unsigned int> > >' infinilife.h:57: error: invalid cast from type '__gnu_cxx::__normal_iterator<const hull8conv::forwards*, std::vecto r<hull8conv::forwards, std::allocator<hull8conv::forwards> > >' to type '__gnu_cxx::__normal_iterator<const unsigned int*, std::vector< unsigned int, std::allocator<unsigned int> > >' #include <Core/Core.h> #include <numeric> #include <vector> enum Direction {R=0,DR,D,DL,L,UL,U,UR};//clockwise Direction operator+(Direction d,int i) {return (Direction)((d+i)&7);} Direction& operator++(Direction& d) {return (++d&8?(d=R):d);} Direction operator++(Direction& d,int) { Direction out=d; if(++d&8)d=R; return out; } class hull8convex { union forwards { uint64 b;//for raw-copy uint32 s[2]; }; template<bool BRACK> struct addBrack : std::binary_function<int,forwards,int> { int operator()(const int i,const forwards f) const {return i+f.s[BRACK];} }; typedef std::vector<forwards> sizevector; typedef std::vector<uint32> uintoverride; int tops[8]; //index of type Direction sizevector forwards[8]; //forwards[i] between tops[i] and tops[i+1] public: int height(Direction d) const { int out=std::accumulate(forwards[d+4].begin(),forwards[d+4].end(), 0,addBrack<0>()); const Direction stop=d+7; for(Direction i=d+5;i!=stop;out+=tops[i++]) std::accumulate(reinterpret_cast<uintoverride::const_iterator>( forwards[i].begin()), //line #56 reinterpret_cast<uintoverride::const_iterator>( forwards[i].end()), //line #57 out); return std::accumulate(forwards[stop].begin(),forwards[stop].end(), out,addBrack<1>()); } }; -- Better send the eMails to netscape.net, as to evade useless burthening of my provider's /dev/null... P _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus