#define in c++

How can I shorten macro as code bellow?
i.e : DO_(n)(x) = DO_(n-1)(x),DO_(1)(x)
Thank you
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#define DO_1(x) &x
#define DO_2(x) DO_1(x),DO_1(x)
#define DO_3(x) DO_2(x),DO_1(x)
#define DO_4(x) DO_3(x),DO_1(x)
#define DO_5(x) DO_4(x),DO_1(x)
#define DO_6(x) DO_5(x),DO_1(x)
#define DO_7(x) DO_6(x),DO_1(x)
#define DO_8(x) DO_7(x),DO_1(x)
#define DO_9(x) DO_8(x),DO_1(x)
#define DO_10(x) DO_9(x),DO_1(x)
#define DO_11(x) DO_10(x),DO_1(x)
#define DO_12(x) DO_11(x),DO_1(x)
#define DO_13(x) DO_12(x),DO_1(x)
#define DO_14(x) DO_13(x),DO_1(x)
#define DO_15(x) DO_14(x),DO_1(x)
#define DO_16(x) DO_15(x),DO_1(x)
#define DO_17(x) DO_16(x),DO_1(x)
#define DO_18(x) DO_17(x),DO_1(x)
#define DO_19(x) DO_18(x),DO_1(x)
using namespace std;
void test(int *a,...)
{
    *a = 9;
    std::cout<<*a<<std::endl;
}
int main()
{
    int a = 0;
    //test(DO_2(a)); <=> test(&a, &a);
    test(DO_30(a));

    return 0;
}
Can you explain what you want your program to do? In terms of actual logic, input/output -- not macros.
Last edited on
Topic archived. No new replies allowed.