Make Child<> an invalid type if the child cannot be extracted
The type alias Child<Node,...>
used to simply be void
if the child type
could not be extracted. That is rather unhelpful, as it makes it impossible to
use in SFINAE.
This patch changes the behavior by making it impossible to instantiate the type alias if there is no valid child.