:relfileprefix: ../../../
[#boost-urls-grammar-ci_hash]

== xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/grammar.adoc[pass:[grammar]]::ci_hash


A case-insensitive hash function object for strings


=== Synopsis

Declared in header `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/grammar/ci_string.hpp#L324[boost/url/grammar/ci_string.hpp,window=blank_]>`

[source,cpp,subs="verbatim,macros,-callouts"]
----
using ci_hash = pass:q[_see-below_];
----

=== Description


The hash function is non-cryptographic and
not hardened against algorithmic complexity
attacks.
This is a suitable hash function for
unordered containers.
The function is defined only for strings
containing low-ASCII characters.
[,cpp]
----
boost::unordered_map< std::string, std::string, ci_hash, ci_equal > m1;

std::unordered_map  < std::string, std::string, ci_hash, ci_equal > m2; // (since C++20)
----



=== See Also


xref:boost/urls/grammar/ci_equal.adoc[ci_equal]
,
xref:boost/urls/grammar/ci_less.adoc[ci_less]
.



