У вас есть две проблемы.
Чтобы использовать собственный компаратор, вы должны указать тип компаратора в качестве третьего аргумента шаблона:
typedef priority_queue<inst*, vector<inst*>, DepthCompare> HeuristicList;
HeuristicList ret( DepthCompare );
интерпретируется как объявление функции, а не объявление переменной, давая ошибку, которую вы видите.Вам нужно передать экземпляр компаратора и убедиться, что он не может быть интерпретирован как объявление функции:
HeuristicList ret = HeuristicList(DepthCompare());
Однако, поскольку первый аргумент конструктора является необязательным, и по умолчанию он создается по умолчаниюкомпаратор, вы можете просто написать
HeuristicList ret;
или, поскольку вы просто возвращаете переменную сразу,
return HeuristicList();