Opened 5 months ago

Closed 2 months ago

#12761 closed Bugs (fixed)

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

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


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 4 months ago by fdegros@…

Ping? Any idea or progress on this topic?

comment:2 Changed 4 months ago by igaztanaga

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

comment:3 Changed 2 months ago by igaztanaga

  • Resolution set to fixed
  • Status changed from new to closed

This was fixed some weeks ago in commit:

Thanks for the report.

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain igaztanaga.
The resolution will be deleted. Next status will be 'reopened'.

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

Note: See TracTickets for help on using tickets.