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