public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "gdr at integrable-solutions dot net" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libstdc++/15910] can't compile self defined void distance(std::vector<T>, std::vector<T>)
Date: Fri, 12 Aug 2005 06:19:00 -0000	[thread overview]
Message-ID: <20050812061912.13402.qmail@sourceware.org> (raw)
In-Reply-To: <20040610143911.15910.king.benjamin@mh-hannover.de>


------- Additional Comments From gdr at integrable-solutions dot net  2005-08-12 06:19 -------
Subject: Re:  can't compile self defined void distance(std::vector<T>, std::vector<T>)

"adah at netstd dot com" <gcc-bugzilla@gcc.gnu.org> writes:

| Herb Sutter's opinion (N1792) is a little different.  He thinks that
| ADL should not work in the OP's example, because distance is simply
| not an `interface' of std::vector (technically, instead of from
| human eyes).  But it is also self-consistent.

All those are assertions, little evidence.  Notice that what is
considered an "interface" varies from one individual to another
individual.  And we just don't have a definition for it, so you're
still using your "human eyes" definition, i.e. projection of your own
wishes. 

I was in the room when ADL was discussed at the last meeting in Norway
-- and indeed, I was part of the people who fiercely encouraged Herb
to bring forward "his modest proposal" (and that does not mean I agree
with every word contained in the proposal, but my interest in getting
the issue addressed).  At that time, I was presenting possible ways
the concept proposal may reduce the uncontrolled power of ADL.  I have
suggested that you give a try to the exercise of "name lookup".  That
suggestion still holds.  Untill, you have done so it is almost certain
then you will completely miss its the depth and ramifications.  It is
no Herb's opinion against mine.  It is a matter of precisely and
consistently defining the rules so that the most common cases are
gotten right. No, it is not GCC's job.  Furthermore, if you want to
eliminate ADL effects; you have to break existing codes and ban ADL.
Herb's suggestion already breaks some existing reasonable codes -- and he
acknowledges that.  You can argue from your notion of engineering and
intuition, but that is all.  And you have to have everbody else's
notion of engineering and intuition intersect with your before moving.
Once, the rules get written and ADL isstill supported, one will always
find cases that is considered either "intuitively and obviously
correct" or "intuitively and obviously wrong".  The reason is very
simple: ADL was *designed on purpose* to make overload set across separate
scopes -- something which did not exist before.  Once you're given
that, all bets are off.  The only thing you can do is to work to get
what you consider to be the most common cases "intuitively and
obviously right".  And live with the rest. 

[...]

| it is safer to have a better diagnostice message *now*.

you get a better diagnostic when you can precisely spell out what
alternate rules can be or give a precise consistent algorithms.  You
haven't so far.  Just arguing. 

-- Gaby


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15910


  parent reply	other threads:[~2005-08-12  6:19 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-10 14:39 [Bug c++/15910] New: " king dot benjamin at mh-hannover dot de
2004-06-10 14:42 ` [Bug c++/15910] " king dot benjamin at mh-hannover dot de
2004-06-10 14:44 ` king dot benjamin at mh-hannover dot de
2004-06-10 14:45 ` bangerth at dealii dot org
2004-06-10 15:17 ` giovannibajo at libero dot it
2004-06-10 16:01 ` pinskia at gcc dot gnu dot org
2004-06-10 16:04 ` giovannibajo at libero dot it
2004-06-10 16:08 ` giovannibajo at libero dot it
2004-06-10 16:17 ` bangerth at dealii dot org
2004-06-10 16:23 ` [Bug libstdc++/15910] " giovannibajo at libero dot it
2004-06-10 16:24 ` giovannibajo at libero dot it
2004-06-10 17:38 ` bangerth at dealii dot org
2004-06-11  0:01 ` giovannibajo at libero dot it
2004-06-11  0:59 ` giovannibajo at libero dot it
2004-08-03 10:33 ` pcarlini at suse dot de
2004-08-03 10:44 ` giovannibajo at libero dot it
2004-08-03 10:50 ` pcarlini at suse dot de
2004-08-03 11:15 ` pcarlini at suse dot de
2004-08-03 11:17 ` giovannibajo at libero dot it
2004-08-03 11:30   ` Gabriel Dos Reis
2004-08-03 11:27 ` gdr at gcc dot gnu dot org
2004-08-03 11:29 ` gdr at gcc dot gnu dot org
2004-08-03 11:30 ` gdr at integrable-solutions dot net
2004-08-03 11:33 ` gdr at gcc dot gnu dot org
2004-08-03 11:38 ` gdr at gcc dot gnu dot org
2004-08-03 12:48 ` giovannibajo at libero dot it
2004-08-03 13:01 ` gdr at integrable-solutions dot net
2004-08-03 13:04 ` bangerth at dealii dot org
2004-08-03 13:14 ` giovannibajo at libero dot it
2004-08-03 13:21 ` giovannibajo at libero dot it
2004-08-03 13:28 ` pcarlini at suse dot de
2004-08-03 13:32 ` giovannibajo at libero dot it
2004-08-03 13:44 ` bangerth at dealii dot org
2004-08-03 13:52 ` giovannibajo at libero dot it
2004-08-03 15:05 ` gdr at integrable-solutions dot net
2004-08-03 15:08 ` gdr at integrable-solutions dot net
2004-08-03 15:16 ` gdr at integrable-solutions dot net
2004-08-03 15:19 ` gdr at integrable-solutions dot net
2004-08-03 17:44 ` giovannibajo at libero dot it
2004-08-03 18:12 ` pinskia at gcc dot gnu dot org
2004-08-03 18:20 ` gdr at integrable-solutions dot net
2004-08-03 18:24 ` gdr at integrable-solutions dot net
2004-08-03 18:25 ` bangerth at dealii dot org
2004-08-03 18:25 ` bangerth at dealii dot org
2004-08-03 18:26 ` bangerth at dealii dot org
2005-08-03 12:57 ` pinskia at gcc dot gnu dot org
2005-08-03 13:03 ` pinskia at gcc dot gnu dot org
2005-08-04  5:27 ` adah at netstd dot com
2005-08-04 10:13 ` gdr at integrable-solutions dot net
2005-08-05  5:41 ` adah at netstd dot com
2005-08-05 13:10 ` bangerth at dealii dot org
2005-08-06 11:58 ` gdr at integrable-solutions dot net
2005-08-06 17:18 ` bangerth at dealii dot org
2005-08-08  2:26 ` adah at netstd dot com
2005-08-08  3:53 ` adah at netstd dot com
2005-08-08  4:56 ` gdr at integrable-solutions dot net
2005-08-08  4:59 ` gdr at integrable-solutions dot net
2005-08-08  6:19 ` adah at netstd dot com
2005-08-08  6:31 ` adah at netstd dot com
2005-08-08 10:25 ` gdr at integrable-solutions dot net
2005-08-08 10:29 ` gdr at integrable-solutions dot net
2005-08-08 12:56 ` adah at netstd dot com
2005-08-08 13:21 ` bangerth at dealii dot org
2005-08-08 18:08 ` gdr at integrable-solutions dot net
2005-08-09  1:45 ` adah at netstd dot com
2005-08-09  8:35 ` gdr at integrable-solutions dot net
2005-08-09 10:49 ` adah at netstd dot com
2005-08-09 11:07 ` gdr at integrable-solutions dot net
2005-08-09 13:26 ` adah at netstd dot com
2005-08-09 13:36 ` adah at netstd dot com
2005-08-09 13:40   ` Andrew Pinski
2005-08-09 13:40 ` pinskia at physics dot uc dot edu
2005-08-09 14:12 ` bangerth at dealii dot org
2005-08-09 17:28 ` gdr at integrable-solutions dot net
2005-08-09 17:36 ` gdr at integrable-solutions dot net
2005-08-10  2:41 ` adah at netstd dot com
2005-08-10  2:49   ` Andrew Pinski
2005-08-10  2:49 ` pinskia at physics dot uc dot edu
2005-08-10  3:11 ` adah at netstd dot com
2005-08-10  3:17 ` pinskia at gcc dot gnu dot org
2005-08-10  3:35 ` adah at netstd dot com
2005-08-10  4:32 ` adah at netstd dot com
2005-08-10 11:35 ` gdr at integrable-solutions dot net
2005-08-11  2:01 ` adah at netstd dot com
2005-08-11  3:51 ` adah at netstd dot com
2005-08-11  6:31 ` gdr at integrable-solutions dot net
2005-08-11  6:46 ` gdr at integrable-solutions dot net
2005-08-12  2:10 ` adah at netstd dot com
2005-08-12  2:14   ` Andrew Pinski
2005-08-12  2:14 ` pinskia at physics dot uc dot edu
2005-08-12  2:32 ` adah at netstd dot com
2005-08-12  2:38   ` Andrew Pinski
2005-08-12  2:38 ` pinskia at physics dot uc dot edu
2005-08-12  3:00 ` adah at netstd dot com
2005-08-12  3:39 ` gdr at integrable-solutions dot net
2005-08-12  3:41 ` gdr at integrable-solutions dot net
2005-08-12  3:45 ` gdr at integrable-solutions dot net
2005-08-12  3:47 ` adah at netstd dot com
2005-08-12  4:05 ` bangerth at dealii dot org
2005-08-12  4:06 ` gdr at integrable-solutions dot net
2005-08-12  5:12 ` adah at netstd dot com
2005-08-12  6:19 ` gdr at integrable-solutions dot net [this message]
2005-08-12  8:52 ` adah at netstd dot com
2005-08-12  9:05 ` gdr at integrable-solutions dot net
2005-08-12  9:24 ` adah at netstd dot com
2005-08-12  9:44 ` gdr at integrable-solutions dot net
2005-08-12 10:50 ` adah at netstd dot com
2005-08-12 11:46 ` gdr at integrable-solutions dot net
2005-08-12 14:03 ` adah at netstd dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050812061912.13402.qmail@sourceware.org \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).