Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.std.c++ > #416

Re: Defect Report: Attitude to overloaded comma for iterators

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail
From Daniel Krügler<daniel.kruegler@googlemail.com>
Newsgroups comp.std.c++
Subject Re: Defect Report: Attitude to overloaded comma for iterators
Date Thu, 9 Feb 2012 10:07:44 -0800 (PST)
Organization A noiseless patient Spider
Lines 50
Sender std-cpp-request@vandevoorde.com
Approved stephen.clamage@oracle.com
Message-ID <4F33C66B.1050801@googlemail.com> (permalink)
References <2ad44743-d84f-41f0-9d69-5a3505c76430@dp8g2000vbb.googlegroups.com> <CAO=tXLCwsrmfXuyT5rn_XF4pccp-H7+SwViSgpM8b4RLzqaPKg@mail.gmail.com> <CAO=tXLC9D0_pCNF51VQYfhneVkswk=zX5Bx8reoBopPO=ivpMg@mail.gmail.com>
NNTP-Posting-Host z4Wz9+22juzfSpojToHnrKN0sZeZDO6YJe9u1feVd+M=
Content-Type text/plain; charset=UTF-8; format=flowed
X-Trace news.albasani.net HsnW2WLt26uPf4xSPn/oKymMHR6xGNjTsC6Xa60JTXelMCuV6/27e5Of+QOoVFkl+a7pTREuwIDukPi6hLjD2g==
X-Complaints-To abuse@albasani.net
NNTP-Posting-Date Thu, 9 Feb 2012 18:10:22 +0000 (UTC)
X-Mailer Perl5 Mail::Internet v2.05
X-Submission-Address std-cpp-submit@vandevoorde.com
Cancel-Lock sha1:Bn1WTFn5ZMahTVTda6xXbKHK8Cc=
X-Original-Date Thu, 09 Feb 2012 14:13:15 +0100
Xref x330-a1.tempe.blueboxinc.net comp.std.c++:416

Show key headers only | View raw


On 2012-01-25 08:30, Yakov Galka wrote:
>  [global.functions] says:
>
>>  Unless otherwise specified, global and non-member functions in the standard library shall not use functions from another namespace which are found through argument-dependent name lookup (3.4.2).
>
>  This sounds clear enough. There are just two problems:
>
>  1. Both implementations I tested (VS2005 and GCC 3.4.3) do unqualified
>  calls to the comma operator in some parts of the library with operands
>  of user-defined types.
>
>  2. The standard itself does this in the description of some
>  algorithms. E.g. uninitialized_copy is defined as:
>
>>  Effects:
>>       for (; first != last; ++result, ++first)
>>         ::new (static_cast<void*>(&*result))
>>           typename iterator_traits<ForwardIterator>::value_type(*first);
>
>  If understood literally, it is required to call operator,
>  (ForwardIterator, InputIterator).
>
>  For detailed discussion with code samples see
>  http://stackoverflow.com/questions/8719829/should-the-implementation-guard-itself-against-comma-overloading.
>
>  Proposal:
>
>  1. Add an exception to the rule in [global.functions] by permitting
>  the implementation to call the comma operator as much as it wants to. �
>  I doubt we want this. or
>
>  2. Fix the description of the said algorithms and perhaps add a note
>  to [global.functions] that brings attention of the implementers to
>  avoid this pitfall.
>
>  Sincerely
>  Yakov Galka

This issue has been forwarded to the LWG working group.

Greetings from Bremen,

Daniel Krügler


-- 
[ comp.std.c++ is moderated.  To submit articles, try posting with your ]
[ newsreader.  If that fails, use mailto:std-cpp-submit@vandevoorde.com ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html                      ]

Back to comp.std.c++ | Previous | NextPrevious in thread | Find similar


Thread

Defect Report: Attitude to overloaded comma for iterators Yakov Galka <ybungalobill@gmail.com> - 2012-01-24 23:30 -0800
  Re: Defect Report: Attitude to overloaded comma for iterators Daniel Krügler<daniel.kruegler@googlemail.com> - 2012-02-09 10:07 -0800

csiph-web