preprocessor/7452: Preprocessor doesn't allow pasting " foo-> ## BAR "

David E. Weekly david@there.com
Tue Jul 30 21:26:00 GMT 2002


The following reply was made to PR preprocessor/7452; it has been noted by GNATS.

From: "David E. Weekly" <david@there.com>
To: "Andrew Pinski" <pinskia@physics.uc.edu>
Cc: <gcc-gnats@gcc.gnu.org>
Subject: RE: preprocessor/7452: Preprocessor doesn't allow pasting " foo-> ## BAR "
Date: Tue, 30 Jul 2002 21:17:10 -0700

 Andrew,
 
 Thank you. That obvious answer had escaped me.
 
 I'd be happy to have preprocessor/7452 closed as Not A Bug, with your
 helpful comments below attached.
 
 Humbly Yours,
  David E. Weekly
  Software Developer
  There, Inc.
 
 
 -----Original Message-----
 From: Andrew Pinski [mailto:pinskia@physics.uc.edu]
 Sent: Tuesday, July 30, 2002 9:01 PM
 To: David E. Weekly
 Cc: gcc-gnats@gcc.gnu.org
 Subject: Re: preprocessor/7452: Preprocessor doesn't allow pasting "
 foo-> ## BAR "
 Importance: High
 
 
 The following will work as expected:
 #define foo(A) { bar->A() }
 foo( methodOfBar );
 
 There is no need for pasting.
 The only need for pasting is where you have two identifiers and
 you want them to be one identifier.
 
 Thanks,
 Andrew Pinski
 
 
 
 On Tuesday, July 30, 2002, at 11:51 , David E. Weekly wrote:
 
 > Andrew,
 >
 > Thank you for your patient explanation. If I do wish to use the modern
 > preprocessor, is it possible in any way to have some:
 >
 > #define foo(A) { bar-> ## A() }
 > foo( methodOfBar );
 >
 > Or, without resorting to the "traditional" CPP, can it simply
 > not be done?
 >
 > Yours,
 >  David E. Weekly
 >  Software Developer
 >  There, Inc.
 >
 >
 > -----Original Message-----
 > From: Andrew Pinski [mailto:pinskia@physics.uc.edu]
 > Sent: Tuesday, July 30, 2002 8:42 PM
 > To: David E. Weekly
 > Cc: gcc-gnats@gcc.gnu.org
 > Subject: Re: preprocessor/7452: Preprocessor doesn't allow pasting "
 > foo-> ## BAR "
 > Importance: High
 >
 >
 > It is illegal because you are trying to paste together two
 > tokens which do not make one token in terms of the C standard.
 > It has been permanently removed because gcc uses a new
 > preprocessor, this has been this way since 3.0.
 > You might get what you expect from using the option -traditional-cpp.
 >
 > Thanks,
 > Andrew Pinski
 >
 >
 >
 > On Tuesday, July 30, 2002, at 11:30 , David E. Weekly wrote:
 >
 >> Andrew,
 >>
 >> Does the standard allow some way to tack on a method name
 >> (i.e., "is there
 >> another way to do this?"), or has this useful feature simply been
 >> permanently removed?
 >>
 >> Also: why is this construct illegal?
 >>
 >> Yours,
 >>  David E. Weekly
 >>  Software Developer
 >>  There, Inc.
 >>
 >> -----Original Message-----
 >> From: Andrew Pinski [mailto:pinskia@physics.uc.edu]
 >> Sent: Tuesday, July 30, 2002 8:23 PM
 >> To: david@there.com
 >> Cc: gcc-gnats@gcc.gnu.org
 >> Subject: Re: preprocessor/7452: Preprocessor doesn't allow pasting "
 >> foo-> ## BAR "
 >> Importance: High
 >>
 >>
 >> What you are doing is illegal according the C standard.
 >>
 >> Thanks,
 >> Andrew Pinski
 >>
 >>
 >>
 >
 >
 >
 



More information about the Gcc-prs mailing list