I wrote:
The problem is we can't have template <template <class, class> class C> class container besides template <template <class> class C> class container. But in this case, I think we can just name the former diffently, for example container_with_allocator. The attached patch is a quick shot: on first sight it's uglier that what has been suggested before (writing template <template< class T, class A = std::allocator<T> > class C> class container, but it doesn't turn all container types into container-assuming-STL types.
It has the problem that it still fails to link and on gcc-4.2 it even fails to compile with very strange error mesages from the assembler. But, heck, who cares!?
Okay, attached is a completed version of that patch. The link failures turned out to be due to some pieces still missing. And the assembler weirdness has gone away with a new snapshot of the compiler (dated 2006-05-06). I'm undecided: check that in or check in the other alternative that basically makes all containers std::allocator<ex> based? In any case, I don't think this is anything for the 1.3 branch since it changes the signature of everything containing a GiNaC::lst. Maybe toss a coin? -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>