ATLAS Offline Software
pputils.h
Go to the documentation of this file.
1 // This file's extension implies that it's C, but it's really -*- C++ -*-.
2 /*
3  * Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration.
4  */
30 #ifndef CXXUTILS_PPARGS_H
31 #define CXXUTILS_PPARGS_H
32 
33 
34 #define CXXUTILS_PP_FIRST(...) CXXUTILS_PP_ARG1(__VA_ARGS__)
35 #define CXXUTILS_PP_ARG1(...) __VA_OPT__(CXXUTILS_PP_ARG1_(__VA_ARGS__))
36 #define CXXUTILS_PP_ARG1_(A, ...) , A
37 
38 #define CXXUTILS_PP_SECOND(...) CXXUTILS_PP_ARG2(__VA_ARGS__)
39 #define CXXUTILS_PP_ARG2(...) __VA_OPT__(CXXUTILS_PP_ARG2_(__VA_ARGS__))
40 #define CXXUTILS_PP_ARG2_(A, ...) CXXUTILS_PP_ARG1(__VA_ARGS__)
41 
42 #define CXXUTILS_PP_THIRD(...) CXXUTILS_PP_ARG3(__VA_ARGS__)
43 #define CXXUTILS_PP_ARG3(...) __VA_OPT__(CXXUTILS_PP_ARG3_(__VA_ARGS__))
44 #define CXXUTILS_PP_ARG3_(A, ...) CXXUTILS_PP_ARG2(__VA_ARGS__)
45 
46 #define CXXUTILS_PP_FOURTH(...) CXXUTILS_PP_ARG4(__VA_ARGS__)
47 #define CXXUTILS_PP_ARG4(...) __VA_OPT__(CXXUTILS_PP_ARG4_(__VA_ARGS__))
48 #define CXXUTILS_PP_ARG4_(A, ...) CXXUTILS_PP_ARG3(__VA_ARGS__)
49 
50 #define CXXUTILS_PP_FIFTH(...) CXXUTILS_PP_ARG5(__VA_ARGS__)
51 #define CXXUTILS_PP_ARG5(...) __VA_OPT__(CXXUTILS_PP_ARG5_(__VA_ARGS__))
52 #define CXXUTILS_PP_ARG5_(A, ...) CXXUTILS_PP_ARG4(__VA_ARGS__)
53 
54 
55 #endif // not CXXUTILS_PPARGS_H