#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