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 // Test, if additional whitespace is inserted at appropriate places. 11 12 //O --variadics 13 14 #define PRIMITIVE_CAT(a, b) a ## b 15 #define PRIMITIVE_CAT3(a, b, c) a ## b ## c 16 17 //R #line 18 "t_9_011.cpp" 18 PRIMITIVE_CAT(1, ABC) //R 1 ABC 19 PRIMITIVE_CAT3(ABC, 1, ABC) //R ABC1ABC 20 21 //H 10: t_9_011.cpp(14): #define 22 //H 08: t_9_011.cpp(14): PRIMITIVE_CAT(a, b)=a ## b 23 //H 10: t_9_011.cpp(15): #define 24 //H 08: t_9_011.cpp(15): PRIMITIVE_CAT3(a, b, c)=a ## b ## c 25 //H 00: t_9_011.cpp(18): PRIMITIVE_CAT(1, ABC), [t_9_011.cpp(14): PRIMITIVE_CAT(a, b)=a ## b] 26 //H 02: 1ABC 27 //H 03: 1ABC 28 //H 00: t_9_011.cpp(19): PRIMITIVE_CAT3(ABC, 1, ABC), [t_9_011.cpp(15): PRIMITIVE_CAT3(a, b, c)=a ## b ## c] 29 //H 02: ABC1ABC 30 //H 03: ABC1ABC 31