Consider the following code.
#include <string>
#include
#include <iostream>
int main()
{
boost::container::stable_vectorstd::string vec;
vec.reserve(10);
std::cout << "capacity = " << vec.capacity() << '\n';
}
On running this (on g++ and Linux), the output is:
capacity = 4294967286 (that's 2^32 - 10)
If replace boost::container::stable_vector with std::vector above, the
output is:
capacity = 10
I know it could as well have been capacity = 20, or capacity = 64 or
whatever but that's still sane behavior. What capacity() returns for
stable_vector seems to be (2^32 - N), N being the requested capacity.
I didn't see such a definition of capacity in the docs:
http://www.boost.org/doc/libs/1_56_0/doc/html/boost/container/stable_vector....
Thanks,
Arindam