Use forward_tuple to prevent needless copies