¿Cuál es el punto de (nulo) first2 ++ aquí? [duplicar
Esta pregunta ya tiene una respuesta aquí:
¿Por qué std :: transform y similar emiten el incremento de bucle 'for' a (void)? 2 respuestasEnest página de en.cppreference hay ejemplos de posible implementación de comparación lexicográfica. Aquí está el básico:
template<class InputIt1, class InputIt2>
bool lexicographical_compare(InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2)
{
for ( ; (first1 != last1) && (first2 != last2); first1++, (void) first2++ ) {
if (*first1 < *first2) return true;
if (*first2 < *first1) return false;
}
return (first1 == last1) && (first2 != last2);
}
IIRC líneas como(void)some_argument;
se usan comúnmente para suprimir las advertencias del compilador sobre los parámetros no utilizados. Pero en esta función, se utilizan todos los parámetros, incluido first2:so cual es el punto de escribir(void) first2++
en la declaración for?
s una solución alternativa de sintaxis en caso de que InputIt1 se sobrecargueoperator,
?