C++ templates suck.
i just spent half a day getting Jade to compile, because the damn thing is packed to the rafters with templates.
Of course, every damn compiler implements templates in a different way. Try deciphering this load of trash:
In file included from ../include/CharsetInfo.h:11, from CharsetInfo.cxx:8: ../include/Vector.h: In instantiation of `Vector<RangeMapRange<unsigned int,unsigned int> >': ../include/RangeMap.h:27: instantiated from `RangeMap<unsigned int,unsigned int>' ../include/UnivCharsetDesc.h:73: instantiated from here ../include/Vector.h:50: `Vector<RangeMapRange<unsigned int,unsigned int> >::operator (unsigned int)' has already been declared in `Vector<RangeMapRange<unsigned int,unsigned int> >'
After banging my head againt the wall for a while, i discovered the problem i'm having stems from template instantiation with consts. The compiler doesn't like two member functions in a template class differing by only a const... Something like
int operation(int x) const; int operator(const int x);
It compiles better if i remove the AC_C_CONST check from configure.in, but won't link now...