]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/wave/test/testwave/testfiles/t_1_032.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / wave / test / testwave / testfiles / t_1_032.cpp
CommitLineData
7c673cae
FG
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 partial macro evaluation using varidic macros
11
12//O --variadics
13
14#define cat(...) cat_i(__VA_ARGS__,,,,,)
15#define cat_i(a, b, c, d, e, ...) \
16 a ## b ## c ## d ## e \
17 /**/
18
19#define primitive_cat(a, b) a ## b
20
21#define partial_cat(x, y) cat(partial_cat_, x, y)
22
23#define partial_cat_00(a, b) partial_cat_f(, ## a, b ## ,)
24#define partial_cat_01(a, b) partial_cat_f(, ## a, b ,)
25#define partial_cat_10(a, b) partial_cat_f(, a, b ## ,)
26#define partial_cat_11(a, b) partial_cat_f(, a, b ,)
27
28#define partial_cat_f(a, b, c, d) b ## c
29
30#define X Token1
31#define Y Token2
32
33//R #line 34 "t_1_032.cpp"
34partial_cat(0, 0)(X, Y) //R XY
35partial_cat(0, 1)(X, Y) //R XToken2
36partial_cat(1, 0)(X, Y) //R Token1Y
37partial_cat(1, 1)(X, Y) //R Token1Token2