According to the standard incrementing end(), and decrementing begin()
are ill-defined operations (see [lib.forward.iterators],
[lib.bidirectional.iterators]).
sign = -sign;
} else if (!(*other < *i))
return 0;
sign = -sign;
} else if (!(*other < *i))
return 0;
+ --i;
+ if (i != first)
+ --other;
}
if (!swapped)
return sign;
}
if (!swapped)
return sign;
sign = -sign;
} else if (!(*i < *other))
return 0;
sign = -sign;
} else if (!(*i < *other))
return 0;
+ ++i;
+ if (i != last)
+ ++other;
}
if (!swapped)
return sign;
}
if (!swapped)
return sign;
sign = -sign;
} else if (!comp(*other, *i))
return 0;
sign = -sign;
} else if (!comp(*other, *i))
return 0;
+ --i;
+ if (i != first)
+ --other;
}
if (!swapped)
return sign;
}
if (!swapped)
return sign;
sign = -sign;
} else if (!comp(*i, *other))
return 0;
sign = -sign;
} else if (!comp(*i, *other))
return 0;
+ ++i;
+ if (i != last)
+ ++other;
}
if (!swapped)
return sign;
}
if (!swapped)
return sign;
flag = other;
swapped = true;
}
flag = other;
swapped = true;
}
+ --i;
+ if (i != first)
+ --other;
flag = other;
swapped = true;
}
flag = other;
swapped = true;
}
+ ++i;
+ if (i != last)
+ ++other;