【发布时间】:2014-05-16 19:01:01
【问题描述】:
我目前正在使用模板函数来评估数学函数的导数,就像这样
template <class func_type>
arma::mat matrixDerivative
(func_type func, const double x, double h, double b=1.4) {
// <implementation details>
}
模板参数允许我使用函数指针或仿函数来计算右侧。
有没有一种简单的方法可以扩展它来评估作为类方法的函数的衍生物?我无法理解如何使用指向成员函数的函数指针,也无法弄清楚将仿函数作为类属性仍然可以访问其父属性和方法的细节。
我的问题通常不清楚,因此请在回答之前随时在 cmets 中寻求澄清。
【问题讨论】:
-
你的编译器支持 C++11 吗?
-
通常你将一个指向对象的指针包装在一个“函子”类中,并通过该类的
operator()中的指针成员调用成员函数。这可以通过 C++11 中的std::bind和std::mem_fn或 C++03 中的std::mem_fun来简化。 -
是的,它支持 C++11。能举个简单的例子吗?
标签: c++ templates c++11 functor member-function-pointers