Files correlati : Commento : Aggiunto il preprocessore c++ mcpp per sostituire il compilatore nella compilazione delle maschere.
		
			
				
	
	
		
			22 lines
		
	
	
		
			659 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			659 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
| /* recurs.t:    recursive macro */
 | |
| /* The sample posted to comp.std.c by B. Stroustrap.    */
 | |
| 
 | |
| #define NIL(xxx)    xxx
 | |
| #define G_0(arg)    NIL(G_1)(arg)
 | |
| #define G_1(arg)    NIL(arg)
 | |
| 
 | |
| G_0(42)
 | |
| 
 | |
| /*
 | |
|  * Note by kmatsui:
 | |
|  * There are two interpretations on the Standard's specification.
 | |
|  * (1)  This macro should be expanded to 'NIL(42)'.
 | |
|  * (2)  This macro should be expanded to '42'.
 | |
|  * The Standard's wording seems to justify the (1).
 | |
|  * GCC, Visual C++ and other major implementations, however, expand
 | |
|  * this macro as (2).
 | |
|  * MCPP V.2.4.1 or later of Standard mode expands this as (1) by default,
 | |
|  * and expands as (2) when invoked with -@compat option.
 | |
|  */
 | |
|  
 |