diff -rupN boost_1_43_0/boost/functional/hash/hash.hpp boost_vms_1_43_0/boost/functional/hash/hash.hpp --- boost_1_43_0/boost/functional/hash/hash.hpp 2010-02-25 21:05:01.000000000 +0200 +++ boost_vms_1_43_0/boost/functional/hash/hash.hpp 2010-07-08 18:04:00.000000000 +0300 @@ -193,9 +193,15 @@ namespace boost template std::size_t hash_value(T* v) #endif { +#if defined(__VMS) && __INITIAL_POINTER_SIZE == 64 + // for some reason ptrdiff_t on OpenVMS compiler with + // 64 bit is not 64 bit !!! + std::size_t x = static_cast( + reinterpret_cast(v)); +#else std::size_t x = static_cast( reinterpret_cast(v)); - +#endif return x + (x >> 3); }