方法在C#中列出如何实现。
?
最后上文中float(*(*f)(float, float))(float)如何初始化还是没搞定,不过相应类似的可以正确初始化。也可以看下bind中带bind代表的方法与意义。
?
?
?
? ? //如何具体化.
? ? float(*(*f)(float, float))(float);
?
? ? auto fvv = function(float, float)>(f);
?
? ? auto fv = [](float f, float d){ ? ? ? ?
? ? ? ? return[](float c)
? ? ? ? {
? ? ? ? ? ? return c;
? ? ? ? };
? ? };
? ??
? ? using namespace std::placeholders;
? ? fvv = fv;
? ? //f = fv;
? ? auto x = bind(bind(fv, _1, _1)(4), _1)(6);
? ? auto xxx = fv(3, 4)(2.0f);
? ? auto yyy = fvv(3, 4)(2.0f);
? ? cout << x << endl;
?
PS:STL刚开始看,只能说
C++的模板与泛形太强大了,相应模板方法可以用动态语言的方式写(声明有这元素,这元素能做啥,就和java script一样),而编译时,根据调用相应模板方法得到正确的实例方法就相当于运行结果。所以很多模板调用错误是在编译阶段指出来的。
?