I created a pathfind algorithm where i can set the heuristic method. But i am using a
function<int (Point2i origin, Point2i destiny)> heuristicFunc;
As my function pointer and i want to initialize it with my default heristic.
So:
Pathfind.h
class Pathfind{
private:
function<int (Point2i origin, Point2i destiny)> heuristicFunc;
int hMethod(Point2i origin, Point2i destiny);
public:
Pathfind();
}
Pathfind.cpp
Pathfind::Pathfind(){
//1st try
this->heuristicFunc=&Pathfind::hMethod;
//2nd try
this->heuristicFunc=std::bind(&Pathfind::hMethod, this);
}
But it returns the same error:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1472:15: Candidate function not viable: no known conversion from 'int (Core::Pathfind::*)(Point2i, Point2i)' to 'const std::__1::function, sf::Point2)>' for 1st argument
why it tries to convert from int(Core::Pathfind::*) ?
Thanks.
using namespace std::placeholders;
heuristicFunc = std::bind(&Pathfind::hMethod, this, _1, _2);
Every argument that you don't supply has to be indicated via a placeholder.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With