public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "leor at bdsoft dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/15684] Pointer to member function called on incomplete type should diag
Date: Fri, 28 May 2004 17:01:00 -0000 [thread overview]
Message-ID: <20040527214621.3570.qmail@sourceware.org> (raw)
In-Reply-To: <20040527163621.15684.gianni@mariani.ws>
------- Additional Comments From leor at bdsoft dot com 2004-05-27 21:46 -------
> oh - here is the link again, hopefully without wrapping
> http://groups.google.com/groups?hl=en&lr=&ie=UTF-
8&c2coff=1&threadm=3ACC2828.45CA0D3C%40dresdner-bank.com&rnum=1&prev=/groups%
3Fq%3Dg:thl1416673164d%26dq%3D%26hl%3Den%26lr%3D%26ie%3DUTF-8%26c2coff%3D1%
26selm%3D3ACC2828.45CA0D3C%2540dresdner-bank.com
That worked. I'm confused by some things Kanze says in that article. First,
there's this:
The question was whether you can take a pointer to member function
on an incomplete class. I don't think that the standard says
anything about this directly.
But the way I read it, 5.5.3 is /very/ clear and direct. You can't do it.
Then there's this:
More generally, the standard always specifies when an incomplete type
is illegal; using an incomplete type in a context which requires a
complete type makes the program ill-formed, and requires a
diagnostic. Considering this, it is interesting that 5.5 makes no
such restriction. I interpret this to mean that you can also
dereference the pointer without completing the type; the following
is legal:
class X ;
void
f( X* pc , void (X::*pmf)() )
{
(pc->*pmf)() ;
}
Here again, the Standard says something must be a complete type (OK, the term
actually used is "completely-defined", but I'm assuming that's the same thing),
and Kanze is saying that the Standard "always specifies" when an incomplete
type is illegal? As if saying something "must be completely-defined" is
insufficient?
Kanze goes on to show the /exact/ situation we're talking about, but he seems
to think the Standard sanctions it. Help me out here, I don't get it.
-leor
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15684
next prev parent reply other threads:[~2004-05-27 21:46 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-28 1:47 [Bug c++/15684] New: " gianni at mariani dot ws
2004-05-28 1:55 ` [Bug c++/15684] " gianni at mariani dot ws
2004-05-28 2:01 ` pinskia at gcc dot gnu dot org
2004-05-28 4:00 ` leor at bdsoft dot com
2004-05-28 4:01 ` pinskia at gcc dot gnu dot org
2004-05-28 11:31 ` gianni at mariani dot ws
2004-05-28 11:57 ` pinskia at gcc dot gnu dot org
2004-05-28 12:02 ` pinskia at gcc dot gnu dot org
2004-05-28 14:46 ` leor at bdsoft dot com
2004-05-28 15:45 ` pinskia at gcc dot gnu dot org
2004-05-28 15:59 ` gianni at mariani dot ws
2004-05-28 17:01 ` leor at bdsoft dot com [this message]
2004-05-28 17:55 ` giovannibajo at libero dot it
2004-05-28 19:03 ` pinskia at gcc dot gnu dot org
2004-05-28 19:13 ` pinskia at gcc dot gnu dot org
2004-12-10 21:09 ` pinskia at gcc dot gnu dot org
2004-12-10 21:41 ` pinskia at gcc dot gnu dot org
[not found] <bug-15684-2828@http.gcc.gnu.org/bugzilla/>
2007-06-20 13:44 ` pinskia at gcc dot gnu dot org
[not found] <bug-15684-4@http.gcc.gnu.org/bugzilla/>
2021-07-16 7:55 ` redi at gcc dot gnu.org
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=20040527214621.3570.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).