# `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.