質問編集履歴

1

追加

2020/07/20 02:18

投稿

template
template

スコア0

test CHANGED
File without changes
test CHANGED
@@ -30,6 +30,8 @@
30
30
 
31
31
  private:
32
32
 
33
+ Run2();
34
+
33
35
  template <int P, int R>
34
36
 
35
37
  void Run(int U = 0,float T = 0);
@@ -48,7 +50,69 @@
48
50
 
49
51
 
50
52
 
53
+ void クラス名::Run2() { //元々Runを実行している関数:エラーなし
54
+
55
+ #define CASE_PP(pp, rr) \
56
+
57
+ case pp: \
58
+
59
+ Run<10 * pp + 1, rr>(); \
60
+
61
+ break;
62
+
63
+
64
+
65
+ #define CASE_RR(rr) \
66
+
67
+ case rr: \
68
+
69
+ switch (something_.pp) { \
70
+
71
+ CASE_PP(1, rr) \
72
+
73
+ CASE_PP(2, rr) \
74
+
75
+ default: { \
76
+
77
+ std::cerr << "Error1" << std::endl; \
78
+
79
+ break; \
80
+
81
+ } \
82
+
83
+ } \
84
+
85
+ break;
86
+
87
+
88
+
89
+ switch (something_.rr) {
90
+
91
+ CASE_RR(1)
92
+
93
+ CASE_RR(2)
94
+
95
+ default: {
96
+
97
+ std::cerr << "Error2" << std::endl;
98
+
99
+ break;
100
+
101
+ }
102
+
103
+ }
104
+
105
+
106
+
107
+ #undef SWITCH_PP
108
+
109
+ #undef CALL_RUN2_FUNC
110
+
111
+ }
112
+
113
+
114
+
51
- Run<10 , 10>(); //実行 //これに対して上のエラー
115
+ Run<10 , 10>(); //Run2とは違う場所で実行したい //これに対して上のエラー
52
116
 
53
117
 
54
118