Ticket #12915: overflow.cc

File overflow.cc, 607 bytes (added by mykmartin@…, 6 years ago)
Line 
1#include <vector>
2#include <boost/container/flat_set.hpp>
3
4int main(int argc, char** argv) {
5 boost::container::flat_set<int32_t> fs;
6 fs.reserve(623);
7
8 // The values inserted aren't relevant, but there must be some amount of
9 // interleaving between the two sets; inserting [1..311] then [501..618]
10 // doesn't trigger the overflow.
11 for (int32_t i = 0, n = 1; i < 311; i++, n += 2) {
12 fs.insert(n);
13 }
14
15 std::vector<int32_t> v;
16 for (int32_t i = 0, n = 2; i < 118; i++, n += 2) {
17 v.push_back(n);
18 }
19 fs.insert(boost::container::ordered_unique_range, v.begin(), v.end());
20
21 return 0;
22}