This function simplifies the unlinking of two nodes and a link. Its definition is:
bool detach(Node *a, Node *b, Link *l) { bool ret=true; if (a) ret&=a->unlink_to(l); if (b) ret&=b->unlink_from(l); l->link_to(0);l->link_from(0); return ret; }so it can be used also without checking the validity of the node pointers. Note: the order of the operations is important.
Neuron
assumes that the link
passed to its methods has a valid node at the other end.