#11957 closed Bugs (fixed)
static_vector::max_size() is higher than the capacity
| Reported by: | anonymous | Owned by: | Ion Gaztañaga |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | container |
| Version: | Boost 1.59.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
According to the documenetation, both static_vector capacity() and max_size() shall return the static_vector capacity:
static_vector public static functions
static size_type capacity() noexcept;
Returns container's capacity.
Throws. Nothing.
Complexity. Constant O(1).
static size_type max_size() noexcept;
Returns container's capacity.
Throws. Nothing.
Complexity. Constant O(1).
This makes sense since the capacity is fixed at compile time.
However it is not actually the case
$ cat svect.cpp
#include <cstdlib>
#include <boost/container/static_vector.hpp>
#include <iostream>
int main()
{
boost::container::static_vector<char, 42> sv;
std::cout << "sv.size(): " << sv.size()
<< "\nsv.capacity(): " << sv.capacity()
<< "\nsv.max_size(): " << sv.max_size() << "\n";
return (sv.max_size() == sv.capacity()) ? EXIT_SUCCESS : EXIT_FAILURE;
}
$ clang++ --std=c++11 svect.cpp && ./a.out sv.size(): 0 sv.capacity(): 42 sv.max_size(): 18446744073709551615
$ echo $? 1
Change History (3)
comment:1 by , 7 years ago
comment:2 by , 7 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Thanks for the report. Fixed in:
https://github.com/boostorg/container/commit/310d8eaf10be14b6a9457fd1284bab761d50c8e2
comment:3 by , 6 years ago
Should the Milestone be set to 1.61 since this appears to have been fixed in 1.61.0 ?
Note:
See TracTickets
for help on using tickets.

subscribe