Modify

Opened 10 months ago

Closed 8 months ago

#12761 closed Bugs (fixed)

intrusive::set::swap doesn't swap the comparison function

Reported by: fdegros@… Owned by: Ion Gaztañaga
Milestone: To Be Determined Component: intrusive
Version: Boost 1.60.0 Severity: Problem
Keywords: Cc: fdegros@…

Description

If you have two Boost intrusive set or multiset objets with a stateful comparison function, swapping them with the swap method doesn't seem to swap the state of their comparison functions.

Is it normal?

Using std::swap doesn't swap their comparison function either, which seems to suggest that set's and multiset's move assignment operator doesn't move the comparison function.

However, it seems that set's and multiset's move constructor does copy the comparison function (by using its copy constructor, not its move constructor though).

Attachments (0)

Change History (3)

comment:1 Changed 9 months ago by fdegros@…

Ping? Any idea or progress on this topic?

comment:2 Changed 9 months ago by Ion Gaztañaga

Thanks for the report and the ping. Yes, it's clearly a bug, I'd try to fix it ASAP.

comment:3 Changed 8 months ago by Ion Gaztañaga

Resolution: fixed
Status: newclosed

This was fixed some weeks ago in commit:

https://github.com/boostorg/intrusive/commit/6510ac498e0f9e54bf2a962a703352dac54158d2

Thanks for the report.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Ion Gaztañaga.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.