# `hash_exponential_size_policy` Interface

A size policy whose sequence of sizes form an exponential sequence (typically powers of 2)

1. `hash_policy.hpp`
2. Template parameters.
3. Public Types and Constants:
   1. General definitions.
4. Public Methods:
   1. Constructors, destructors, and related methods.
5. Protected Methods:
   1. Size methods

## Template parameters.

Parameter | Description | Default Value
    Size_Type
| Size type. | size_t

## General definitions.

Type | Definition | Description
    size_type
    Size_Type
| Size type.

## Constructors, destructors, and related methods.

Method | Description
      hash_exponential_size_policy
      (size_type start_size = 8,
        size_type grow_factor = 2)
| Default constructor, or onstructor taking a `start_size`, a start size and `grow_factor`, a growth factor. The policy will use the sequence of sizes `start_size`, `start_size` * `grow_factor`, `start_size` * `grow_factor`^2, ...
    void
      swap
      (hash_exponential_size_policy &r_other)
| Swaps content.

## Size methods

Method | Description
    size_type
      get_init_size
      (size_type suggested_size) const
| Given `suggested_size`, a suggested size, returns an initial size of the container related to the initial size.
    size_type
      get_nearest_larger_size
      (size_type cur_size) const
| Given `cur_size`, the current size, returns a size that is larger.
    size_type
      get_nearest_smaller_size
      (size_type cur_size) const
| Given `cur_size`, the current size, returns a size that is smaller.