Date: Thu, 30 Mar 2000 12:10:03 -0800 (PST) From: "Jacques A . Vidrine" <n@nectar.com> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/13383 sys/netinet/in.h violates C++ spec. Message-ID: <200003302010.MAA10597@freefall.freebsd.org>
index | next in thread | raw e-mail
The following reply was made to PR bin/13383; it has been noted by GNATS.
From: "Jacques A . Vidrine" <n@nectar.com>
To: freebsd-gnats-submit@freebsd.org
Cc:
Subject: Re: bin/13383 sys/netinet/in.h violates C++ spec.
Date: Thu, 30 Mar 2000 14:06:49 -0600
I believe this PR should be closed with no action, because:
+ Recent activities by the C++ Standards working group indicates
that though the current version of the standard prohibits structures
like ip_opts, this was a mistake made in 1996 that will be corrected
in a future version of the standard (excerpt below, snarfed from
http://wwwold.dkuug.dk/JTC1/SC22/WG21/docs/core8.htm).
+ egcs allows this construction when it is encountered within
``extern "C"'' . This is non-standard, but practical. This
feature was added by Jason Merrill <jason@cygnus.com> in revision
1.282 of gcc/cp/decl.c on 12 Dec 1998.
===== begin excerpt =====
Document number: J16/99-0032 = WG21 N1208
Date: 23 February, 2000
Project: Programming Language C++
Reference: ISO/IEC IS 14882:1998(E)
Reply to: William M. Miller
wmm@fastdial.net
C++ Standard Core Language Issues List, Revision 9
80. Class members with same name as class
Section: 9.2 class.mem Status: review Submitter: Jason Merrill Date:
5 Dec 1998
Between the May '96 and September '96 working papers, the text in 9.2
class.mem paragraph 13:
If T is the name of a class, then each of the following shall have a
name different from T:
+ every static data member of class T;
was changed by removing the word 'static'. Looking over the meeting minutes
from Stockholm, none of the proposals seem to include this change, which
breaks C compatibility and is not mentioned in the compatibility annex. Was
this change actually voted in by the committee?
Specifically, this breaks /usr/include/netinet/in.h under Linux, in which
"struct ip_opts" shares its name with one of its members.
Proposed resolution (10/99):
1. Change the first bullet of 9.2 class.mem paragraph 13 to say
+ every static data member of class T;
2. Add another paragraph before 9.2 class.mem paragraph 14, reading
In addition, if class T has a user-declared constructor (12.1
class.ctor ), every nonstatic data member of class T shall have a
name different from T.
===== end excerpt =====
--
Jacques Vidrine / n@nectar.com / nectar@FreeBSD.org
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200003302010.MAA10597>
