supressed MSVC++ spurious C4312/C4311 warnings described at http://lists.boost.org/boost-users/2006/03/18075.php, with help from John Maddock