Errores, fallos, preguntas - página 1644

 
Alexey Navoykov:
¿Has venido a nosotros desde el pasado lejano? )
No, un poco más cerca.
 
A100:

Error de compilación: ')' - no todas las vías de control devuelven un valor

Pues, francamente, este es un ejemplo absurdo. Aunque C++ lo permita, pero ¿es posible este caso en una aplicación real? ¿Por qué deberíamos poner un bucle si sólo hay una iteración?
 
Alexey Navoykov:
Pues, francamente, este es un ejemplo absurdo. Aunque C++ lo permita, pero ¿es posible este caso en una aplicación real? ¿Por qué poner un bucle si sólo hay una iteración?

Por qué uno, si en el sentido de que es un ciclo interminable y está escrito para continuar

Y a veces lo necesitas, ¿adivinas cuándo? Te voy a dar una pista - para salir de un complicado if-else-switch como goto sin banderas innecesarias y otros excesos

 
A100:

Por qué uno, si es un ciclo interminable y continúa

Y hay momentos en los que se necesita uno, ¿adivinas cuándo?

No me había dado cuenta de que tienes algo escrito en los comentarios... Era difícil mostrarlo en el código, ¿no?
 

En general, no está muy claro qué significa exactamente "bajo muchas líneas con retorno, continuar, sin pausa". ¿hay un if?

p.d. Lo tengo.

 
Sergei Vladimirov:
En su ejemplo, todos ellos. La salida de while(true) sólo es posible mediante el operador break (que no tiene) o return.
Vitalii Ananev:
No voy a discutir. Pero el mensaje de error del compilador ')' - no todas las rutas de control devuelven un valor, dice lo contrario.

¿Sobre lo contrario de qué? ¿Que no sólo es posible salir con una pausa o una vuelta? ))

 
Alexey Navoykov:
En general, no está muy claro qué quiere decir exactamente "bajo muchas líneas c retorno, continuar, sin pausa". ¿hay un if?

No importa. Se puede jugar incluso con un ciclo vacío:

bool Func()
{
   while(true)
   {
      return true;
   }
}
//')' - not all control paths return a value	Temp Script.mq4	25	1


 
Sergei Vladimirov:

¿Sobre lo contrario de qué? ¿Que no sólo es posible salir con una pausa o una vuelta? ))

De eso se trata.

No todas las ramas de código devuelven un valor. .....

Me refiero a que no todas las ramas del código anterior devuelven un valor. Es en estos casos cuando el compilador genera este error.

 
Vitalii Ananev:

Se trata de eso.

Que no todas las ramas del código anterior devuelven un valor. Es en estos casos cuando el compilador genera este error.

Eso es lo que digo: el mensaje de error es erróneo.
 
Sergei Vladimirov:

No importa. Se puede jugar incluso con un ciclo vacío:

Eso es lo que digo, el mensaje de error es erróneo.

No dio el código completo, y aparentemente ese código completo tiene operadores de ramificación.

Razón de la queja: