函数指针指向boost :: geometry函数

问题描述 投票:2回答:1

我试图将boost::geometry::get函数described here传递给另一个函数,但我似乎无法正确。

我有:

template<typename StorageType = double,
         std::size_t D = 3>
class Derivative : public DerivativeBase<StorageType, D> {
public:
typedef typename DerivativeBase<StorageType, D>::results_t results_t;

template<typename Iterator, typename Geometry>
results_t operator()(Iterator& objIterator, StorageType (*getter)(Geometry const&))
...

并且编译器抛出:

error: no match for call to ‘(Derivative<double, 3ul>) (iterator&, <unresolved overloaded function type>)’

我试着调用我的函数:

derivs = myDerivs(it, &boost::geometry::get<0>);

我想部分问题是因为我没有将参数传递给get,编译器无法弄清楚Geometry在函数签名中应该是什么类型。

我如何通过此功能?

c++ function-pointers boost-geometry
1个回答
0
投票

这完全不是boost.geometry特有的。如果函数重载或需要显式传递所有模板参数,则需要static_cast函数到它的确切类型。第二种情况就是这里(例如&get<0, GeometryType>)。

© www.soinside.com 2019 - 2024. All rights reserved.