c++ - Puzzling Digital Mars C++ Behavior
- Stephen Zamoscianyk (20/20) Jul 30 2003 Hello:
- Greg Peet (7/27) Jul 30 2003 doh! you forgot the source =)
Hello: I discovered a behavior of the Digital Mars compiler that has me puzzled. The small program reproduced below compiles without error as a .c program but produces an error when compiled as a .cpp program, namely: SC -cpp -r -Ae -Ar -Aa -mx -f -S -s -3 -a4 -c -oFPTR2.obj FPTR2.cpp int (* t(int ix))(int *); ^ FPTR2.cpp(9) : Error: '(' expected following simple type name The startling thing is that other compilers like DJ Delorie's DJGPP (ver 2.81), Borland's BC++4.5 (bcc -ml -3 -k -N fptr2.cpp), and even (alas) Microsoft's Visual C++ 4 compile this .cpp code without a complaint. I would be immensely appreciative if you would clarify if this is some new C++ language behavior or if this is some kind of bug. Incidentally, replacing the declaration for the t-function with: T t(int ix); //--FORWARD REFERENCE function prototype where T is defined as: typedef int (*T)(int *k); makes all the Digital Mars errors go away... Thanks in advance for any assistance, Stephen Zamoscianyk byf9vh cs.com
Jul 30 2003
doh! you forgot the source =) "Stephen Zamoscianyk" <Stephen_member pathlink.com> wrote in message news:bga4g8$2usm$1 digitaldaemon.com...Hello: I discovered a behavior of the Digital Mars compiler that has me puzzled. The small program reproduced below compiles without error as a .c program but produces an error when compiled as a .cpp program, namely: SC -cpp -r -Ae -Ar -Aa -mx -f -S -s -3 -a4 -c -oFPTR2.obj FPTR2.cpp int (* t(int ix))(int *); ^ FPTR2.cpp(9) : Error: '(' expected following simple type name The startling thing is that other compilers like DJ Delorie's DJGPP (ver2.81),Borland's BC++4.5 (bcc -ml -3 -k -N fptr2.cpp), and even (alas)Microsoft'sVisual C++ 4 compile this .cpp code without a complaint. I would beimmenselyappreciative if you would clarify if this is some new C++ languagebehavior orif this is some kind of bug. Incidentally, replacing the declaration for the t-function with: T t(int ix); //--FORWARD REFERENCE function prototype where T is defined as: typedef int (*T)(int *k); makes all the Digital Mars errors go away... Thanks in advance for any assistance, Stephen Zamoscianyk byf9vh cs.com
Jul 30 2003