COMMS
Template library intended to help with implementation of communication protocols.
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
Functions
a
c
d
f
g
h
i
m
p
r
s
t
v
w
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
Enumerations
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
~
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
~
Variables
Typedefs
a
c
d
e
f
g
h
i
m
n
p
r
s
t
u
v
w
Related Symbols
Files
File List
File Members
All
Macros
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Loading...
Searching...
No Matches
include
comms
details
reverse_macro_args.h
1
//
2
// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved.
3
//
4
// This Source Code Form is subject to the terms of the Mozilla Public
5
// License, v. 2.0. If a copy of the MPL was not distributed with this
6
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
8
#pragma once
9
10
#include "comms/details/macro_common.h"
11
12
//#define COMMS_DO_REVERSE_MACRO_ARGS_0()
13
#define COMMS_DO_REVERSE_MACRO_ARGS_1(n_) COMMS_EXPAND(n_)
14
#define COMMS_DO_REVERSE_MACRO_ARGS_2(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_1(__VA_ARGS__)) , COMMS_EXPAND(n_)
15
#define COMMS_DO_REVERSE_MACRO_ARGS_3(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_2(__VA_ARGS__)) , COMMS_EXPAND(n_)
16
#define COMMS_DO_REVERSE_MACRO_ARGS_4(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_3(__VA_ARGS__)) , COMMS_EXPAND(n_)
17
#define COMMS_DO_REVERSE_MACRO_ARGS_5(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_4(__VA_ARGS__)) , COMMS_EXPAND(n_)
18
#define COMMS_DO_REVERSE_MACRO_ARGS_6(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_5(__VA_ARGS__)) , COMMS_EXPAND(n_)
19
#define COMMS_DO_REVERSE_MACRO_ARGS_7(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_6(__VA_ARGS__)) , COMMS_EXPAND(n_)
20
#define COMMS_DO_REVERSE_MACRO_ARGS_8(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_7(__VA_ARGS__)) , COMMS_EXPAND(n_)
21
#define COMMS_DO_REVERSE_MACRO_ARGS_9(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_8(__VA_ARGS__)) , COMMS_EXPAND(n_)
22
#define COMMS_DO_REVERSE_MACRO_ARGS_10(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_9(__VA_ARGS__)) , COMMS_EXPAND(n_)
23
#define COMMS_DO_REVERSE_MACRO_ARGS_11(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_10(__VA_ARGS__)) , COMMS_EXPAND(n_)
24
#define COMMS_DO_REVERSE_MACRO_ARGS_12(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_11(__VA_ARGS__)) , COMMS_EXPAND(n_)
25
#define COMMS_DO_REVERSE_MACRO_ARGS_13(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_12(__VA_ARGS__)) , COMMS_EXPAND(n_)
26
#define COMMS_DO_REVERSE_MACRO_ARGS_14(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_13(__VA_ARGS__)) , COMMS_EXPAND(n_)
27
#define COMMS_DO_REVERSE_MACRO_ARGS_15(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_14(__VA_ARGS__)) , COMMS_EXPAND(n_)
28
#define COMMS_DO_REVERSE_MACRO_ARGS_16(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_15(__VA_ARGS__)) , COMMS_EXPAND(n_)
29
#define COMMS_DO_REVERSE_MACRO_ARGS_17(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_16(__VA_ARGS__)) , COMMS_EXPAND(n_)
30
#define COMMS_DO_REVERSE_MACRO_ARGS_18(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_17(__VA_ARGS__)) , COMMS_EXPAND(n_)
31
#define COMMS_DO_REVERSE_MACRO_ARGS_19(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_18(__VA_ARGS__)) , COMMS_EXPAND(n_)
32
#define COMMS_DO_REVERSE_MACRO_ARGS_20(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_19(__VA_ARGS__)) , COMMS_EXPAND(n_)
33
#define COMMS_DO_REVERSE_MACRO_ARGS_21(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_20(__VA_ARGS__)) , COMMS_EXPAND(n_)
34
#define COMMS_DO_REVERSE_MACRO_ARGS_22(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_21(__VA_ARGS__)) , COMMS_EXPAND(n_)
35
#define COMMS_DO_REVERSE_MACRO_ARGS_23(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_22(__VA_ARGS__)) , COMMS_EXPAND(n_)
36
#define COMMS_DO_REVERSE_MACRO_ARGS_24(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_23(__VA_ARGS__)) , COMMS_EXPAND(n_)
37
#define COMMS_DO_REVERSE_MACRO_ARGS_25(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_24(__VA_ARGS__)) , COMMS_EXPAND(n_)
38
#define COMMS_DO_REVERSE_MACRO_ARGS_26(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_25(__VA_ARGS__)) , COMMS_EXPAND(n_)
39
#define COMMS_DO_REVERSE_MACRO_ARGS_27(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_26(__VA_ARGS__)) , COMMS_EXPAND(n_)
40
#define COMMS_DO_REVERSE_MACRO_ARGS_28(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_27(__VA_ARGS__)) , COMMS_EXPAND(n_)
41
#define COMMS_DO_REVERSE_MACRO_ARGS_29(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_28(__VA_ARGS__)) , COMMS_EXPAND(n_)
42
#define COMMS_DO_REVERSE_MACRO_ARGS_30(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_29(__VA_ARGS__)) , COMMS_EXPAND(n_)
43
#define COMMS_DO_REVERSE_MACRO_ARGS_31(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_30(__VA_ARGS__)) , COMMS_EXPAND(n_)
44
#define COMMS_DO_REVERSE_MACRO_ARGS_32(n_, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_31(__VA_ARGS__)) , COMMS_EXPAND(n_)
45
46
#define COMMS_REVERSE_MACRO_ARGS_INTERNAL_(N, ...) COMMS_EXPAND(COMMS_DO_REVERSE_MACRO_ARGS_ ## N(__VA_ARGS__))
47
#define COMMS_REVERSE_MACRO_ARGS_INTERNAL(N, ...) COMMS_EXPAND(COMMS_REVERSE_MACRO_ARGS_INTERNAL_(N, __VA_ARGS__))
48
#define COMMS_REVERSE_MACRO_ARGS(...) \
49
COMMS_EXPAND(COMMS_REVERSE_MACRO_ARGS_INTERNAL(COMMS_NUM_ARGS(__VA_ARGS__), __VA_ARGS__))
50
51
52
53
54
55
56
57
58
59
60
61
62
Generated by
1.9.8