🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Bjarne Stroustrup Sat, 24 May 1986 13:29
bug
#207
Author: Bjarne Stroustrup
Date: Sat, 24 May 1986 13:29
29 lines
1433 bytes
cit-vax.Caltech.Edu (Jonathan P. Leech)
>
>    The following code:
> 
> 	int spam() {
> 	    double (*z)[4] = (double (*)[4])0;
> 	}
> 
>     is legal C code. It is not legal C++ code (release 1.0),
> generating the following error message:
> 
>     "junk.c", line 2: error:  z is undefined
> 
>     Declarations of this form seem not to cause any problem in member
> functions of classes (the only other context in which I had occasion
> to use them in C++ until tonight). This is a most annoying bug. Any
> help in fixes or workarounds would greatly appreciated.

Yes that is a nasty cfront bug. Sorry. The code is legal C++ but I have
persistent problems convincing YACC about that.

Fortunately the workaround is simple:

	int spam() {
 	    auto double (*z)[4] = (double (*)[4])0;
	}

In general, if you get funny error messages in connection with pointer to
function declarations use a storage class specifier to help YACC.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads