|
template<class HASH_ALGORITHM , class TYPE > |
bsl::enable_if<(bsl::is_integral< TYPE >::value||bsl::is_pointer< TYPE >::value||bsl::is_enum< TYPE >::value)&&!bsl::is_same< TYPE, bool >::value >::type | hashAppend (HASH_ALGORITHM &hashAlg, TYPE input) |
|
template<class HASH_ALGORITHM , class TYPE > |
bsl::enable_if< bsl::is_floating_point< TYPE >::value &&!bsl::is_same< TYPE, longdouble >::value >::type | hashAppend (HASH_ALGORITHM &hashAlg, TYPE input) |
|
template<class HASH_ALGORITHM , class TYPE > |
bsl::enable_if< bsl::is_same< TYPE, bool >::value >::type | hashAppend (HASH_ALGORITHM &hashAlg, TYPE input) |
|
template<class HASH_ALGORITHM , class TYPE > |
bsl::enable_if< bsl::is_same< TYPE, longdouble >::value >::type | hashAppend (HASH_ALGORITHM &hashAlg, TYPE input) |
|
template<class HASH_ALGORITHM , size_t N> |
void | hashAppend (HASH_ALGORITHM &hashAlg, char(&input)[N]) |
|
template<class HASH_ALGORITHM , size_t N> |
void | hashAppend (HASH_ALGORITHM &hashAlg, const char(&input)[N]) |
|
template<class HASH_ALGORITHM , class TYPE , size_t N> |
void | hashAppend (HASH_ALGORITHM &hashAlg, TYPE(&input)[N]) |
|
template<class HASH_ALGORITHM , class TYPE , size_t N> |
void | hashAppend (HASH_ALGORITHM &hashAlg, const TYPE(&input)[N]) |
|
template<class HASH_ALGORITHM , class TYPE1 , class TYPE2 > |
void | hashAppend (HASH_ALGORITHM &algorithm, const std::pair< TYPE1, TYPE2 > &input) |
|
template<class HASHALG , class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR > |
BSLS_PLATFORM_AGGRESSIVE_INLINE void | hashAppend (HASHALG &hashAlg, const std::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > &input) |
|
template<class HASH_ALGORITHM , class TYPE1 , class TYPE2 >
void bslh::hashAppend |
( |
HASH_ALGORITHM & |
algorithm, |
|
|
const std::pair< TYPE1, TYPE2 > & |
input |
|
) |
| |
|
inline |
Invoke the (appropriate) hashAppend
function, with the specified algorithm
on the first
and second
members, in that order, of the specified input
pair.
template<class HASH_ALGORITHM , class TYPE >
Passes the specified input
into the specified hashAlg
to be combined into the internal state of the algorithm which is used to produce the resulting hash value. Note that the enable_if
meta-function is used to enable this hashAppend
function for only bool
, because bool
s can have multiple true
representations and need to be normalized before they can be hashed as a continuous sequence of bytes.
Passes the specified input
into the specified hashAlg
to be combined into the internal state of the algorithm which is used to produce the resulting hash value. Note that the enable_if
meta-function is used to enable this hashAppend
function for only integral (excluding bool
), pointer, and enum types, because these types can all be hashed as a continuous sequence of bytes. Also note that this function is defined inline because MS Visual Studio compilers before 2013 require (some) functions declared using enable_if be in-place inline.
Passes the specified input
into the specified hashAlg
to be combined into the internal state of the algorithm which is used to produce the resulting hash value. Note that the enable_if
meta-function is used to enable this hashAppend
function for only floating point (excluding long double
) types, because these types need to have +/-0.0 normalized to 0.0 before they can be hashed as a continuous sequence of bytes. Also note that this function is defined inline because MS Visual Studio compilers before 2013 require (some) functions declared using enable_if be in-place inline.
template<class HASH_ALGORITHM , class TYPE >
Passes the specified input
into the specified hashAlg
to be combined into the internal state of the algorithm which is used to produce the resulting hash value. Note that the enable_if
meta-function is used to enable this hashAppend
function for only long double
, because on some compilers long double
s contain garbage and can not be hashed as a continuous sequence of bytes.
Passes the specified input
into the specified hashAlg
to be combined into the internal state of the algorithm which is used to produce the resulting hash value. Note that the enable_if
meta-function is used to enable this hashAppend
function for only integral (excluding bool
), pointer, and enum types, because these types can all be hashed as a continuous sequence of bytes. Also note that this function is defined inline because MS Visual Studio compilers before 2013 require (some) functions declared using enable_if be in-place inline.
Passes the specified input
into the specified hashAlg
to be combined into the internal state of the algorithm which is used to produce the resulting hash value. Note that the enable_if
meta-function is used to enable this hashAppend
function for only floating point (excluding long double
) types, because these types need to have +/-0.0 normalized to 0.0 before they can be hashed as a continuous sequence of bytes. Also note that this function is defined inline because MS Visual Studio compilers before 2013 require (some) functions declared using enable_if be in-place inline.
template<class HASHALG , class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
Pass the specified input
string to the specified hashAlg
hashing algorithm of the (template parameter) type HASHALG
. Note that this function violates the BDE coding standard, adding a function for a namespace for a different package, and none of the function parameters are from this package either. This is necessary in order to provide an implementation of bslh::hashAppend
for the (native) standard library string
type as we are not allowed to add overloads directly into namespace std
, and this component essentially provides the interface between bsl
and std
string types.