make_pipe does not throw, but returns error_or<pipe>