[v3] Add missing forward_list<>::splice_after and merge overloads fix splice_after taking a range

François Dumont frs.dumont@gmail.com
Mon Apr 16 19:38:00 GMT 2012

A comment in debug/list says:

     // We used to perform the splice_alloc check:  not anymore, redundant
     // after implementing the relevant bits of N1599.

The normal list implementation already throw a runtime_error exception 
when allocators are not equal. Maybe we should do the same thing for 
forward_list, no ?


On 04/11/2012 11:57 PM, Jonathan Wakely wrote:
> On 11 April 2012 11:32, Paolo Carlini wrote:
>> Francois, can you please review the debug-mode checks for cases like:
>>     std::forward_list<int>  fl1(1), fl2(1);
>>     fl1.splice_after(fl1.before_begin(), fl2, fl2.before_begin(),
>> fl2.begin());
>> ?
>> I don't think we should error out. We don't for things like:
>>     std::list<int>  fl1(1), fl2(1);
>>     fl1.splice(fl1.begin(), fl2, fl2.begin(), fl2.begin());
>> ie, the source is in both cases just an empty range, not an invalid range.
> btw, in debug mode we should be checking fl1.get_allocator() ==
> fl2.get_allocator() for both forward_list and list.

More information about the Libstdc++ mailing list