'port' assign to compile under gcc 3 (specifically tested with 3.3.1).
This mostly required messing with the STL #includes. Still builds under gcc 2.95, and won't be built with 3.3 by default until I've spent more time testing it. One reason for doing this is that gcc 3.3 seems to generate faster code from templated functions. Tests so far show that the gcc3-compiled binary shaves 15-30% off of assign's runtime. The other reason for doing this is forward-looking. When we end up getting boss running on FreeBSD 5 or a recent Linux distro, the compiler is likely to be from the gcc 3 branch.