Merge some Borland workarounds from trunk.
Merged revisions 45283,45292-45296,45298,45303-45307,45339,45346-45347,45353-45355,45359,45378,45393,45395,45409,45421-45423,45445-45447,45449,45456,45479,45481-45483,45545,45550,45565,45570,45573 via svnmerge from
https://svn.boost.org/svn/boost/trunk
........
r45409 | danieljames | 2008-05-15 22:10:51 +0100 (Thu, 15 May 2008) | 1 line
Borland doesn't seem to be able to cope with 'has_move_assign'.
........
r45573 | danieljames | 2008-05-20 16:13:57 +0100 (Tue, 20 May 2008) | 12 lines
Fix for older versions of the Borland C++ compiler which create the default
'operator=' even when an 'operator=' which takes its argument by value has been
defined. This causes assignments to be ambiguous. To work around this, I'm
removing the definitions on those compilers - breaking move assignment, but
allowing other assignments to work.
I'm using 0x0593 because that's the earliest compiler that I've seen do the
right thing, but it might also work on earlier 5.9.x versions.
........