https://codereview.appspot.com/41330044/diff/1/src/search/pdbs/canonical_pdbs...
File src/search/pdbs/canonical_pdbs_heuristic.h (right):
https://codereview.appspot.com/41330044/diff/1/src/search/pdbs/canonical_pdbs...
src/search/pdbs/canonical_pdbs_heuristic.h:56: bool dead_end(const State &state)
const;
The comment is good, but I would find it confusing if we end up with two
different methods called "dead_end" (implemented here) and "is_dead_end"
(inherited from the base class) that work with a quite different protocol that
is not obvious from the name.
If we end up merging this, I'd prefer the interface to be a bit more consistent
in terms of names. One possibility would be to replace "dead_end" with a
function called "evaluate_dead_end", which behaves like "evaluate", but only
sets the heuristic value to 0 or infinity. Then the interface for the fast
dead-end check would be "evaluate_dead_end" => "is_dead_end", which would be
more similar to the usual "evaluate" => "dead_end" interface.