25 Dec
2015
25 Dec
'15
7:09 p.m.
[..] fooIndex.erase(b) involves hashing and equality comparison for Bar*'s, which as you correctly point out does not throw. Once the element(s) to be erased are identified, no further user-provided function (getBarValue or any other) is invoked, and deletion will succeed. Briefly put, fooIndex.erase(b) does not ever throw and does not ever call getBarValue, if this is what you were after.
Precisely! Thanks, nick