Right, understood, finally. Thanks. -----Original Message----- From: Martin v. Loewis [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 24, 2001 8:43 PM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]; debian-gcc@lists.debian.org; [EMAIL PROTECTED] Subject: Re: comparing function pointer with int does not produce error
> I can't disagree with your reading ("involve" doesn't mean "be"). However, > searching for "integral constant expression" suggests to me that this > outlaws the following code, all of which compiles without warning: > > enum {dim = 1}; > char a [dim]; // 8.3.4.1 Please note that only null pointer constants are required to be "of integer type". Not every "integral constant expression" is "of integer type"; some are of enumeration type. An array bound doesn't need to be of integer type. > void* b = new char [1] [dim]; // 5.3.4.6 ... nor does the dimension in a new expression ... > struct Badger > { > static const int i = dim; // 9.4.2.4 ... nor the initialization of a static data member of const integral *or const enumeration type* (notice that, under your interpretation, it would be disallowed to initialize a const of enumeration type with an enumerator - this is certainly not intended in C++). Regards, Martin ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This footnote also confirms that this email message has been swept by MIMEsweeper for the presence of computer viruses. www.mimesweeper.com **********************************************************************