| 1 | #include <vector>
|
|---|
| 2 | #include <boost/container/flat_set.hpp>
|
|---|
| 3 |
|
|---|
| 4 | int 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 | }
|
|---|