- 734 名前:デフォルトの名無しさん (ワッチョイ f35b-tpgq) mailto:sage [2017/03/19(日) 01:10:03.99 ID:7dJ8iAqk0.net]
- >>714
日本語で説明しようとしたのはまずかった。C++で書き直すと、以下。 ただしC++文法には詳しくないので、syntaxErrorは適宜脳内修正よろしく。 意味だけ見てくれ。ソースは>>666から流用してる。 class F { int _a; public: F(const int a):_a(a) {} int calc(const int x, const int k) const { return k * x + _a; } }; int main() { const F f0(1); const F f1(2); std::function<...> f0_1 = std::bind(&F::calc, f0, _1, 3); // 第2引数を固定 std::function<...> f0_2 = std::bind(&F::calc, f1, 4, _1); // 第1引数を固定 std::function<...> f1_1 = std::bind(&F::calc, f1, _1, 5); // 第2引数を固定 call_sub(F0, f0_1, f0_2); call_sub(F1, f1_1, f0_1); } void call_sub(F& f, std::function<...> f1, std::function<...> f2){ f->func(1,2); // (L) 直接呼び出し f1(3); // (M) コンパイラによっては直接呼び出し、一般的には2段階呼び出し f2(4); // (N) 2段階呼び出し }
|

|