LIEF: Library to Instrument Executable Formats Version 1.0.0
Loading...
Searching...
No Matches
elsa_std.h
Go to the documentation of this file.
1#ifndef FROZEN_LETITGO_BITS_ELSA_STD_H
2#define FROZEN_LETITGO_BITS_ELSA_STD_H
3
4#include "defines.h"
5#include "elsa.h"
6#include "hash_string.h"
7
8#ifdef FROZEN_LETITGO_HAS_STRING_VIEW
9#include <string_view>
10#endif
11#include <string>
12
13namespace frozen {
14
15#ifdef FROZEN_LETITGO_HAS_STRING_VIEW
16
17template <typename CharT> struct elsa<std::basic_string_view<CharT>>
18{
19 constexpr std::size_t operator()(const std::basic_string_view<CharT>& value) const {
20 return hash_string(value);
21 }
22 constexpr std::size_t operator()(const std::basic_string_view<CharT>& value, std::size_t seed) const {
23 return hash_string(value, seed);
24 }
25};
26
27#endif
28
29template <typename CharT> struct elsa<std::basic_string<CharT>>
30{
31 constexpr std::size_t operator()(const std::basic_string<CharT>& value) const {
32 return hash_string(value);
33 }
34 constexpr std::size_t operator()(const std::basic_string<CharT>& value, std::size_t seed) const {
35 return hash_string(value, seed);
36 }
37};
38
39} // namespace frozen
40
41#endif // FROZEN_LETITGO_BITS_ELSA_STD_H
Definition string.h:41
Definition algorithm.h:30
constexpr std::size_t hash_string(const String &value)
Definition hash_string.h:9
Definition string.h:155
constexpr std::size_t operator()(const std::basic_string< CharT > &value, std::size_t seed) const
Definition elsa_std.h:34
constexpr std::size_t operator()(const std::basic_string< CharT > &value) const
Definition elsa_std.h:31
Definition elsa.h:30
constexpr std::size_t operator()(T const &value, std::size_t seed) const
Definition elsa.h:34