Use boost::hash_value to avoid undef conv of neg/large floating -> size_t

Change-Id: I85853ffc6083d46c02c08f14d5d3321803c31301