В стандартной библиотеке GNU C++ есть:
struct _Hash_impl
{
static size_t
hash(const void* __ptr, size_t __clength,
size_t __seed = static_cast<size_t>(0xc70f6907UL))
{ return _Hash_bytes(__ptr, __clength, __seed); }
/* etc. */
}
как часть его реализации (и это то, что он использует, например, для строк). Теперь я тоже хочу использовать этот код... как я могу получить к нему доступ переносимым способом (т.е. таким образом, чтобы он работал, скажем, с libc++ Clang)?
std::hash<std::string>
? en.cppreference.com/w/cpp/utility/hash - person GManNickG   schedule 21.02.2016std::string
. - person einpoklum   schedule 21.02.2016std::hash
- это ваш единственный доступ к стандартному хеш-интерфейсу, и, к сожалению, он довольно недоопределен. В нем нет ничего для объединения хэшей (скажем, для хеширования кортежа или массива). У Boost есть хорошая библиотека хеширования, если вы хотите что-то переносимое, включая хэши для диапазонов. - person GManNickG   schedule 21.02.2016