ATLAS Offline Software
Loading...
Searching...
No Matches
pputils.h File Reference

Preprocessor utilities. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define CXXUTILS_PP_FIRST(...)
#define CXXUTILS_PP_ARG1(...)
#define CXXUTILS_PP_ARG1_(A, ...)
#define CXXUTILS_PP_SECOND(...)
#define CXXUTILS_PP_ARG2(...)
#define CXXUTILS_PP_ARG2_(A, ...)
#define CXXUTILS_PP_THIRD(...)
#define CXXUTILS_PP_ARG3(...)
#define CXXUTILS_PP_ARG3_(A, ...)
#define CXXUTILS_PP_FOURTH(...)
#define CXXUTILS_PP_ARG4(...)
#define CXXUTILS_PP_ARG4_(A, ...)
#define CXXUTILS_PP_FIFTH(...)
#define CXXUTILS_PP_ARG5(...)
#define CXXUTILS_PP_ARG5_(A, ...)

Detailed Description

Preprocessor utilities.

Author
scott snyder snyde.nosp@m.r@bn.nosp@m.l.gov
Date
May, 2024

Given an argument list of arbitrary length, CXXUTILS_PP_FIRST returns a comma followed by the first argument if it exists; otherwise, it expands to nothing. CXXUTILS_PP_SECOND does the same thing for the second argument, and so on through @CXXUTILS_PP_FIFTH.

That is:

CXXUTILS_PP_FIRST(a, b, c) -> , a
CXXUTILS_PP_SECOND(a, b, c) -> , b
static Double_t a
#define CXXUTILS_PP_FIRST(...)
Definition pputils.h:34
#define CXXUTILS_PP_SECOND(...)
Definition pputils.h:38

CXXUTILS_PP_ARG1 through CXXUTILS_PP_ARG5 are also available as synonyms that may be more useful if these are used through the expansion of other macros.

Definition in file pputils.h.

Macro Definition Documentation

◆ CXXUTILS_PP_ARG1

#define CXXUTILS_PP_ARG1 ( ...)
Value:
__VA_OPT__(CXXUTILS_PP_ARG1_(__VA_ARGS__))
#define CXXUTILS_PP_ARG1_(A,...)
Definition pputils.h:36

Definition at line 35 of file pputils.h.

◆ CXXUTILS_PP_ARG1_

#define CXXUTILS_PP_ARG1_ ( A,
... )
Value:
, A
hold the test vectors and ease the comparison

Definition at line 36 of file pputils.h.

◆ CXXUTILS_PP_ARG2

#define CXXUTILS_PP_ARG2 ( ...)
Value:
__VA_OPT__(CXXUTILS_PP_ARG2_(__VA_ARGS__))
#define CXXUTILS_PP_ARG2_(A,...)
Definition pputils.h:40

Definition at line 39 of file pputils.h.

◆ CXXUTILS_PP_ARG2_

#define CXXUTILS_PP_ARG2_ ( A,
... )
Value:
CXXUTILS_PP_ARG1(__VA_ARGS__)
#define CXXUTILS_PP_ARG1(...)
Definition pputils.h:35

Definition at line 40 of file pputils.h.

◆ CXXUTILS_PP_ARG3

#define CXXUTILS_PP_ARG3 ( ...)
Value:
__VA_OPT__(CXXUTILS_PP_ARG3_(__VA_ARGS__))
#define CXXUTILS_PP_ARG3_(A,...)
Definition pputils.h:44

Definition at line 43 of file pputils.h.

◆ CXXUTILS_PP_ARG3_

#define CXXUTILS_PP_ARG3_ ( A,
... )
Value:
CXXUTILS_PP_ARG2(__VA_ARGS__)
#define CXXUTILS_PP_ARG2(...)
Definition pputils.h:39

Definition at line 44 of file pputils.h.

◆ CXXUTILS_PP_ARG4

#define CXXUTILS_PP_ARG4 ( ...)
Value:
__VA_OPT__(CXXUTILS_PP_ARG4_(__VA_ARGS__))
#define CXXUTILS_PP_ARG4_(A,...)
Definition pputils.h:48

Definition at line 47 of file pputils.h.

◆ CXXUTILS_PP_ARG4_

#define CXXUTILS_PP_ARG4_ ( A,
... )
Value:
CXXUTILS_PP_ARG3(__VA_ARGS__)
#define CXXUTILS_PP_ARG3(...)
Definition pputils.h:43

Definition at line 48 of file pputils.h.

◆ CXXUTILS_PP_ARG5

#define CXXUTILS_PP_ARG5 ( ...)
Value:
__VA_OPT__(CXXUTILS_PP_ARG5_(__VA_ARGS__))
#define CXXUTILS_PP_ARG5_(A,...)
Definition pputils.h:52

Definition at line 51 of file pputils.h.

◆ CXXUTILS_PP_ARG5_

#define CXXUTILS_PP_ARG5_ ( A,
... )
Value:
CXXUTILS_PP_ARG4(__VA_ARGS__)
#define CXXUTILS_PP_ARG4(...)
Definition pputils.h:47

Definition at line 52 of file pputils.h.

◆ CXXUTILS_PP_FIFTH

#define CXXUTILS_PP_FIFTH ( ...)
Value:
CXXUTILS_PP_ARG5(__VA_ARGS__)
#define CXXUTILS_PP_ARG5(...)
Definition pputils.h:51

Definition at line 50 of file pputils.h.

◆ CXXUTILS_PP_FIRST

#define CXXUTILS_PP_FIRST ( ...)
Value:
CXXUTILS_PP_ARG1(__VA_ARGS__)

Definition at line 34 of file pputils.h.

◆ CXXUTILS_PP_FOURTH

#define CXXUTILS_PP_FOURTH ( ...)
Value:
CXXUTILS_PP_ARG4(__VA_ARGS__)

Definition at line 46 of file pputils.h.

◆ CXXUTILS_PP_SECOND

#define CXXUTILS_PP_SECOND ( ...)
Value:
CXXUTILS_PP_ARG2(__VA_ARGS__)

Definition at line 38 of file pputils.h.

◆ CXXUTILS_PP_THIRD

#define CXXUTILS_PP_THIRD ( ...)
Value:
CXXUTILS_PP_ARG3(__VA_ARGS__)

Definition at line 42 of file pputils.h.