From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3430 invoked by alias); 27 Jan 2015 16:40:22 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 3193 invoked by uid 48); 27 Jan 2015 16:40:15 -0000 From: "alex-j-a at hotmail dot co.uk" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/64814] std::copy_n advances InputIterator one *less* time than necessary. Date: Tue, 27 Jan 2015 16:40:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Version: 4.9.2 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: alex-j-a at hotmail dot co.uk X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-01/txt/msg03105.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64814 --- Comment #5 from Anquietas --- (In reply to Jonathan Wakely from comment #3) > However, I don't see any requirement in the standard that says we're > supposed to do so. All that is required is n assignments, there is no > guarantee that the input range is also incremented past the last element > written to. The closest thing I could find to an up to date copy of the C++11 standard: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf copy_n is on page 851 "Effects: For each non-negative integer i < n, performs *(result + i) = *(first + i)." Since it's talking about input iterators where (first + n) isn't valid I think we can interpret this as n applications each of ++first and *first. I don't know whether the most recent version changed the description though; perhaps if you could provide a link?