回答編集履歴

2

再送

2019/07/02 12:50

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
File without changes

1

追記

2019/07/02 12:50

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -43,3 +43,67 @@
43
43
  }
44
44
 
45
45
  ```
46
+
47
+
48
+
49
+ > すみません、根本的に私の質問が間違っていて
50
+
51
+ 違う関数ではなく同じ関数で実引数を交互に変えるというものでした..
52
+
53
+
54
+
55
+ スマートかは分かりませんが、一つの案として。ほぼ変わってないですね。
56
+
57
+
58
+
59
+ ```C++
60
+
61
+ #include <iostream>
62
+
63
+ #include <functional>
64
+
65
+ #include <string>
66
+
67
+
68
+
69
+ void funcA(void);
70
+
71
+ void funcB(void);
72
+
73
+
74
+
75
+ namespace {
76
+
77
+ bool useParamA = true;
78
+
79
+ bool useParamB = true;
80
+
81
+ std::function<void(void)> func = funcA;
82
+
83
+ }
84
+
85
+
86
+
87
+ void funcImpl(const std::string& arg) {
88
+
89
+ std::cout << arg << "\n";
90
+
91
+ }
92
+
93
+ void funcA(void) {
94
+
95
+ funcImpl("A");
96
+
97
+ if(useParamB) func = funcB;
98
+
99
+ }
100
+
101
+ void funcB(void) {
102
+
103
+ funcImpl("B");
104
+
105
+ if(useParamA) func = funcA;
106
+
107
+ }
108
+
109
+ ```