• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Boost.Wave: A Standard compliant C++ preprocessor library
3     http://www.boost.org/
4 
5     Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
6     Software License, Version 1.0. (See accompanying file
7     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 =============================================================================*/
9 
10 // Tests concatination of more than two parameters
11 
12 #define CAT3_1(a, b, c) a##b##c
13 #define CAT3_2(a, b, c) a ## b ## c
14 
15 #define CAT4_1(a, b, c, d) a##b##c##d
16 #define CAT4_2(a, b, c, d) a ## b ## c ## d
17 
18 //R #line 19 "t_1_029.cpp"
19 CAT3_1(1, 0, 0)       //R 100
20 CAT3_2(1, 0, 0)       //R 100
21 //R
22 CAT4_1(1, 0, 0, 2)    //R 1002
23 CAT4_2(1, 0, 0, 2)    //R 1002
24 
25 //H 10: t_1_029.cpp(12): #define
26 //H 08: t_1_029.cpp(12): CAT3_1(a, b, c)=a##b##c
27 //H 10: t_1_029.cpp(13): #define
28 //H 08: t_1_029.cpp(13): CAT3_2(a, b, c)=a ## b ## c
29 //H 10: t_1_029.cpp(15): #define
30 //H 08: t_1_029.cpp(15): CAT4_1(a, b, c, d)=a##b##c##d
31 //H 10: t_1_029.cpp(16): #define
32 //H 08: t_1_029.cpp(16): CAT4_2(a, b, c, d)=a ## b ## c ## d
33 //H 00: t_1_029.cpp(19): CAT3_1(1, 0, 0), [t_1_029.cpp(12): CAT3_1(a, b, c)=a##b##c]
34 //H 02: 100
35 //H 03: 100
36 //H 00: t_1_029.cpp(20): CAT3_2(1, 0, 0), [t_1_029.cpp(13): CAT3_2(a, b, c)=a ## b ## c]
37 //H 02: 100
38 //H 03: 100
39 //H 00: t_1_029.cpp(22): CAT4_1(1, 0, 0, 2), [t_1_029.cpp(15): CAT4_1(a, b, c, d)=a##b##c##d]
40 //H 02: 1002
41 //H 03: 1002
42 //H 00: t_1_029.cpp(23): CAT4_2(1, 0, 0, 2), [t_1_029.cpp(16): CAT4_2(a, b, c, d)=a ## b ## c ## d]
43 //H 02: 1002
44 //H 03: 1002
45