cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
Hasher.h
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2013-2021 Laurent Forthomme
4
*
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#ifndef CepGen_Utils_Hasher_h
20
#define CepGen_Utils_Hasher_h
21
22
#include <cstddef>
23
#include <functional>
24
25
namespace
cepgen
{
26
namespace
utils {
28
template
<
class
T,
bool
>
29
struct
Hasher
{
31
inline
size_t
operator()
(
const
T& t)
const
{
return
std::hash<T>()(t); }
32
};
34
template
<
class
T>
35
struct
Hasher
<T, true> {
37
inline
size_t
operator()
(
const
T& t) {
38
typedef
typename
std::underlying_type<T>::type enumType;
39
return
std::hash<enumType>()(
static_cast<
enumType
>
(t));
40
}
41
};
43
template
<
class
T>
44
struct
EnumHash
{
46
inline
size_t
operator()
(
const
T& t)
const
{
return
Hasher<T, std::is_enum<T>::value
>()(t); }
47
};
48
}
// namespace utils
49
}
// namespace cepgen
50
51
#endif
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
cepgen::utils::EnumHash
A hasher table for an enumeration.
Definition
Hasher.h:44
cepgen::utils::EnumHash::operator()
size_t operator()(const T &t) const
Hash an enumerator-indexed table.
Definition
Hasher.h:46
cepgen::utils::Hasher< T, true >::operator()
size_t operator()(const T &t)
Hash a structure-indexed table.
Definition
Hasher.h:37
cepgen::utils::Hasher
A hasher table for a given structure.
Definition
Hasher.h:29
cepgen::utils::Hasher::operator()
size_t operator()(const T &t) const
Hash a generic table.
Definition
Hasher.h:31
CepGen
Utils
Hasher.h
Generated on Mon Jul 29 2024 for CepGen by
1.9.7