The specification of forward_list
says that the range (first, last)
should be spliced, and there is unfortunately no way to do this in O(1) time because one needs access to last-1
to do that, and the only way to get access to last-1
is to iterate forward from first
.
Had the spec been to splice the range (first, last]
, then an O(1) splice would be possible. I know of no way to achieve this with the current forward_list
spec.
I think it is a defect. However I've already tried and failed to fix it:
http://cplusplus.github.com/LWG/lwg-defects.html#897
However issues have been reversed in the past, especially when complaints come in from non-committee members such as yourself. The way to file a complaint is to open a new issue, referencing any old or related issues if appropriate. The instructions for opening an issue are here.
PS: +1 on the question.