Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Reference

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 14. Boost.Functional/Hash

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Reference

Для полной спецификации см. раздел 6.3 C++ Стандартный библиотечный технический отчет и выпуск 6.18 из списка технических выпусков Расширение библиотеки (стр. 63).

Определяет boost::hash и функции помощника.

namespace boost {
  template<typename T> struct hash;
  template<> struct hash<bool>;
  template<> struct hash<char>;
  template<> struct hash<signed char>;
  template<> struct hash<unsigned char>;
  template<> struct hash<wchar_t>;
  template<> struct hash<short>;
  template<> struct hash<unsigned short>;
  template<> struct hash<int>;
  template<> struct hash<unsigned int>;
  template<> struct hash<long>;
  template<> struct hash<unsigned long>;
  template<> struct hash<long long>;
  template<> struct hash<unsigned long long>;
  template<> struct hash<float>;
  template<> struct hash<double>;
  template<> struct hash<long double>;
  template<> struct hash<std::string>;
  template<> struct hash<std::wstring>;
  template<typename T> struct hash<T*>;
  template<> struct hash<std::type_index>;
  // Support functions (Boost extension).
  template<typename T> void hash_combine(size_t &, T const&);
  template<typename It> std::size_t hash_range(It, It);
  template<typename It> void hash_range(std::size_t&, It, It);
  // Overloadable hash implementation (Boost extension).
  std::size_t hash_value(bool);
  std::size_t hash_value(char);
  std::size_t hash_value(signed char);
  std::size_t hash_value(unsigned char);
  std::size_t hash_value(wchar_t);
  std::size_t hash_value(short);
  std::size_t hash_value(unsigned short);
  std::size_t hash_value(int);
  std::size_t hash_value(unsigned int);
  std::size_t hash_value(long);
  std::size_t hash_value(unsigned long);
  std::size_t hash_value(long long);
  std::size_t hash_value(unsigned long long);
  std::size_t hash_value(float);
  std::size_t hash_value(double);
  std::size_t hash_value(long double);
  template<typename T> std::size_t hash_value(T* const&);
  template<typename T, unsigned N> std::size_t hash_value(T (&val)[N]);
  template<typename T, unsigned N> std::size_t hash_value(const T (&val)[N]);
  template<typename Ch, typename A> 
    std::size_t hash_value(std::basic_string<Ch, std::char_traits<Ch>, A> const&);
  template<typename A, typename B> 
    std::size_t hash_value(std::pair<A, B> const&);
  template<typename T, typename A> 
    std::size_t hash_value(std::vector<T, A> const&);
  template<typename T, typename A> 
    std::size_t hash_value(std::list<T, A> const&);
  template<typename T, typename A> 
    std::size_t hash_value(std::deque<T, A> const&);
  template<typename K, typename C, typename A> 
    std::size_t hash_value(std::set<K, C, A> const&);
  template<typename K, typename C, typename A> 
    std::size_t hash_value(std::multiset<K, C, A> const&);
  template<typename K, typename T, typename C, typename A> 
    std::size_t hash_value(std::map<K, T, C, A> const&);
  template<typename K, typename T, typename C, typename A> 
    std::size_t hash_value(std::multimap<K, T, C, A> const&);
  template<typename T> std::size_t hash_value(std::complex<T> const&);
  std::size_t hash_value(std::type_index);
  template<typename T, std::size_t N> 
    std::size_t hash_value(std::array<T, N> const&);
  template<typename... T> std::size_t hash_value(std::tuple<T...>);
}

Support functions (Boost extension).

  1. templatetypename T> void hash_combine(size_t & Tconst&;

    Неоднократно вызывается для постепенного создания хеш-значения из нескольких переменных.

    Последствия:

    Обновления семена с новым хеш-значением, генерируемым путем объединения его с результатом hash_value(v). Всегда будет производить один и тот же результат для одной и той же комбинации seed и hash_value(v) во время одного запуска программы.

    Примечания:

    hash_value называется без квалификации, так что перегрузки можно найти через ADL.

    Это расширение до TR1

    Forward заявлено в

    Эта хеш-функция не предназначена для общего использования и не гарантируется равенство во время отдельных запусков программы, поэтому, пожалуйста, не используйте ее для любого постоянного хранения или связи.

    Броски:

    Бросает только если hash_value(T) бросает. Сильная безопасность исключения, если hash_value(T) также имеет сильную безопасность исключения.
  2. Ithash_tItпервый,последний;6><типовое имяvoid
    hash_range:6>size_t,первый,Последний;6>

    Вычислите комбинированное хеш-значение элементов итераторного диапазона.

    <

    Это расширение для TR1

    Форвард объявлен в

    Эта хеш-функция не предназначена для общего использования и не гарантируется равенство во время отдельных запусков программы - поэтому, пожалуйста, не используйте ее для любого постоянного хранения или связи.

    Броски:

    Только броски, если hash_traits(std::iterator_traits::value_type)броски. hash_range(std::size_t&, It, It) имеет базовую безопасность исключения, если hash_value(std::iterator_traits::value_type) имеет базовую безопасность исключения.

Overloadable hash implementation (Boost extension).

  1. >>>>>>>>>>>>>><6

    Как правило, пользователи не должны звонить напрямую, вместо этого они должны использовать boost::hash, boost::hash_range или boost::hash_combine, которые называют hash_value без квалификации пространства имен, так что перегрузки для пользовательских типов обнаруживаются через ADL.

    броски для элемента контейнера, или один из типов, хранящихся в паре.

    Примечания:

    Это расширение для TR1

    Эта хеш-функция не предназначена для общего использования и не гарантируется равенство во время отдельных запусков программы - поэтому, пожалуйста, не используйте ее для любого постоянного хранения или связи.

    Броски:

    Только броски, если пользователь предоставил версию hash_value
    , , std:: В противном случае неопределенное значение, за исключением того, что равные аргументы должны давать тот же результат.
    std::type_index val.hash_code()

PrevUpHomeNext

Статья Reference раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 14. Boost.Functional/Hash может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 14. Boost.Functional/Hash ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:36:06/0.0086779594421387/0