File: t_9_020.cpp

package info (click to toggle)
boost1.74 1.74.0-9
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 464,084 kB
  • sloc: cpp: 3,338,324; xml: 131,293; python: 33,088; ansic: 14,336; asm: 4,034; sh: 3,351; makefile: 1,193; perl: 1,036; yacc: 478; php: 212; ruby: 102; lisp: 24; sql: 13; csh: 6
file content (48 lines) | stat: -rw-r--r-- 1,570 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*=============================================================================
    Boost.Wave: A Standard compliant C++ preprocessor library
    http://www.boost.org/

    Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
    Software License, Version 1.0. (See accompanying file
    LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/

//  tests whether whitespace is correctly handled in macro arguments

//O --variadics

#define STRINGIZE1(x) #x
#define STRINGIZE(x)  STRINGIZE1(x)

#define MACRO(...)    (__VA_ARGS__) - STRINGIZE((__VA_ARGS__))

//R #line 20 "t_9_020.cpp"
MACRO()               //R () - "()" 
MACRO( )              //R () - "()" 
MACRO(a)              //R (a) - "(a)" 
MACRO( a )            //R ( a ) - "( a )" 
MACRO(  a  )          //R ( a ) - "( a )" 
MACRO(a,b)            //R (a,b) - "(a,b)" 
MACRO(a, b)           //R (a, b) - "(a, b)" 
MACRO(a ,b)           //R (a ,b) - "(a ,b)" 
MACRO( a ,b, c )      //R ( a ,b, c ) - "( a ,b, c )" 
MACRO(   a ,b, c   )  //R ( a ,b, c ) - "( a ,b, c )" 

#undef MACRO
#define MACRO(x) [x]

//R #line 35 "t_9_020.cpp"
MACRO()               //R [] 
MACRO( )              //R [] 
MACRO(123)            //R [123] 
MACRO( 123 )          //R [ 123 ] 
MACRO(  123  )        //R [ 123 ] 

#define A(x) 1 x 3
#define B(x) (1)x(3)

//R #line 45 "t_9_020.cpp"
A(2)                  //R 1 2 3 
STRINGIZE(A(2))       //R "1 2 3" 
STRINGIZE(B(2))       //R "(1)2(3)" 
STRINGIZE(B( 2 ))     //R "(1) 2 (3)"