- auto heap_greater = [invgoal](const std::shared_ptr<Step>& a, const std::shared_ptr<Step>& b) {
- return a->cost(invgoal) > b->cost(invgoal);
- };
- std::priority_queue<std::shared_ptr<Step>,
- std::vector<std::shared_ptr<Step>>,
- decltype(heap_greater)> todo(heap_greater);