This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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 ?

François

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.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]