#include #include int main(int argc, char** argv) { boost::container::flat_set fs; fs.reserve(623); // The values inserted aren't relevant, but there must be some amount of // interleaving between the two sets; inserting [1..311] then [501..618] // doesn't trigger the overflow. for (int32_t i = 0, n = 1; i < 311; i++, n += 2) { fs.insert(n); } std::vector v; for (int32_t i = 0, n = 2; i < 118; i++, n += 2) { v.push_back(n); } fs.insert(boost::container::ordered_unique_range, v.begin(), v.end()); return 0; }