No need to check new_fd.num() -- FileDescriptor constructor does that already
Allow use of move semantics when passing lvalue