...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::container::growth_factor — defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
// In header: <boost/container/options.hpp> template<typename GrowthFactor> struct growth_factor { };
This option setter specifies the growth factor strategy of the underlying vector.
Predefined growth factors that can be passed as arguments to this option are: boost::container::growth_factor_50
boost::container::growth_factor_60
boost::container::growth_factor_100
If this option is not specified, a default will be used by the container.
typename GrowthFactor
A function object that has the following signature:
template<class SizeType>
SizeType operator()(SizeType cur_cap, SizeType add_min_cap, SizeType max_cap) const;
.
cur_cap
is the current capacity, add_min_cap
is the minimum additional capacity we want to achieve and max_cap
is the maximum capacity that the allocator or other factors allow. The implementation should return a value between cur_cap
+ add_min_cap
and max_cap
. cur_cap
+ add_min_cap
is guaranteed not to overflow/wraparound, but the implementation should handle wraparound produced by the growth factor.