id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 11701,Regression in boost::intrusive::set::equal_range,nyh@…,Ion Gaztañaga,"This bug was discovered by Daniel Peebles in https://github.com/cloudius-systems/osv/issues/635 '''equal_range()''' is supposed to be a slightly more efficient way to obtain both lower_bound() and upper_bound(). But as this issue demonstrates, '''boost::intrusive::set''' :: equal_range() was correct in Boost 1.55 (tested on a Fedora 21 installation) but is broken in Boost 1.57 (tested on a Fedora 22 installation). The attached simplified reproducer program builds a boost::intrusive::set of a ""myrange"" type - simple disjoint integer ranges, and then uses a separate user-defined comparator ""comp"" in finding the lower and upper bound, as well as equal_range. The output in Boost 1.55 is the expected output: {{{ equal_range: (5, 8) - (10, 13) lower_bound: (5, 8) upper_bound: (10, 13) }}} Indeed, ""(5,8)"" is the first item to match, and ""(10,13)"" is the one past the last. But, the output in Boost 1.57 is different: {{{ equal_range: (5, 8) - (8, 10) lower_bound: (5, 8) upper_bound: (10, 13) }}} Note how equal_range() is now incorrect (""(8,10)"" still does not compare less according to ""comp""), and moreover, different than what upper_bound() returns (which is the correct response).",Bugs,closed,To Be Determined,intrusive,Boost 1.57.0,Regression,fixed,,pumpkingod@…