23 lines
532 B
C++
23 lines
532 B
C++
#pragma once
|
|
|
|
#include "../hash.hpp"
|
|
|
|
#include <utility>
|
|
|
|
|
|
namespace cruft::hash {
|
|
/// A std compatible adapter for a variadic 'mix' hash.
|
|
///
|
|
/// It combines multiple values in a way that is unlikely to result in collisions.
|
|
///
|
|
/// The exact implementation is not defined.
|
|
struct mixer {
|
|
template <typename ...ValueT>
|
|
auto operator () (ValueT &&...elements)
|
|
{
|
|
return cruft::hash::mix (
|
|
std::forward<ValueT> (elements)...
|
|
);
|
|
}
|
|
};
|
|
} |