P99

◆ P99_PASTE

#define P99_PASTE (   ...)    P00_PASTE(P00_NARG(__VA_ARGS__), __VA_ARGS__)

A left-to-right associative paste operator.

This macro avoids the ambiguity of the ## preprocessor operator which has no well defined associativity. With this macro here something like

P99_PASTE(0.1E, -, 1)

is guaranteed to produce the token 0.1E-1, whereas the seemingly equivalent

ETSAP(0.1E, -, 1)

is not valid: the intermediate operation to paste tokens `-' and `1' would result in an invalid token and is thus rejected.

This macro does the evaluation of the arguments first and then proceeds at the concatenation of the results.

Precondition
the argumentlist should not be empty.

Definition at line 349 of file p99_logical.h.