Wrapper ensuring a hash functor's call operator is const-qualified.
Declared in <bslstl_hashtable.h>
template<class FUNCTOR>
class HashTable_HashWrapper;
This class provides a wrapper around a functor satisfying the Hash requirements ({bslstl_hash}) such that the function call operator is always declared as const qualified.
TBD Provide an optimization for the case of an empty base functor, where we can safely const_cast want calling the base class operator.
Note that we would only one class, not two, with C++11 variadic templates and perfect forwarding, and we could also easily detect whether or not FUNCTOR provided a const-qualified operator().
| Name | Description |
|---|---|
HashTable_HashWrapper [constructor] | Constructors |
functor | Return a reference to the wrapped hash functor. |
operator() | Call the wrapped hash functor with arg. |
swap | Exchange the wrapped hash functor with that of other. |
| Name | Description |
|---|---|
HashTable_HashWrapper<FUNCTOR const> | Partial specialization for const-qualified hash functors. |
HashTable_HashWrapper<FUNCTOR&> | Partial specialization for const-qualified hash functors. |
| Name | Description |
|---|---|
swap | Swap the functors wrapped by a and b. |