2013-04-02 49 views
3

因为它看起来here boost :: hash_value总是返回一个size_t值。是否有64位版本的boost :: hash_value

增强还有64位散列函数吗?

+0

在我的系统(Mac OS X 10.8,带有clang)下面的代码: 'std :: cout << sizeof(size_t)<< std :: endl;''打印“8” –

+0

但是这不是你可以信赖的东西,是吗?见[这里](http://en.wikipedia.org/wiki/Size_t#stddef.h) – Subway

+0

不是。所有我知道的'hash'东西都会返回一个'size_t'('boost :: hash'和'std :: hash')。 –

回答

3

所有我知道的散列例程(boost::hashstd::hash1C++11中)都将散列值设置为size_t的值。

size_t(如int)的表示方式因平台而异。

在一般情况下,您的问题的答案是否定的 - 没有64位版本的boost::hash_value

如果您在一个平台上运行,其中size_t是64位数量(例如,x86_64),则是,boost::hash_value将是64位。

相关问题