Error del compilador con el parámetro de la plantilla = void* - página 10

 
Ilya Malev:
En cuanto a "los programadores normales recuerdan las prioridades de las operaciones de C++ como una tabla de multiplicar",
Nadie ha expresado tal tesis. Yo mismo utilizo la pestaña de la Documentación
 
fxsaber:

¡Exactamente! No es un profesional en absoluto, estas advertencias me han ayudado 100 veces.

Tampoco soy profesional, pero más de una vez me han molestado estos avisos, porque entre decenas (y a veces cientos) de estos avisos superfluos se han perdido los realmente importantes y necesarios

¿Y no está claro qué tipo de advertencias puede tener si pone paréntesis en todas partes? Y si se trataba de otros casos, no hay necesidad de mezclar las cosas

 
A100:

Para que el concepto pueda ser implementado en el compilador. Nadie prohíbe poner paréntesis adicionales. La pregunta es sobre las advertencias innecesarias

Bueno, en el estudio esto está configurado por un nivel.

Y en realidad nadie te impedirá eliminar estas advertencias cambiando el código para que al compilador le guste

 
TheXpert:

Bueno, en el estudio, se establece por un nivel.

Y en realidad nadie te impide eliminar estas advertencias cambiando el código para que al compilador le guste

Es un obstáculo, porque entonces hay paréntesis adicionales. Pero nadie impide que los amantes de esta causa pongan paréntesis adicionales, y lo más importante: todos estarían contentos con ello

Dudo que sea configurable en el estudio - porque no hay advertencias redundantes sobre paréntesis supuestamente olvidados (al menos por defecto) y por lo tanto no hay ningún tema de configuración

 
A100:

No me importa. Deja que estas advertencias permanezcan en el viejo MQL4.

Así es como permanecen en su mayor parte

void OnStart()
 {
  int a=0,b=0,c=0,d=0,e=0,f=0;
  a=b|d/e^f|a^b&d^e%f|c;
 }

En µl4 jura por todo, en µl5 sólo por las operaciones << y >>, lo cual es bastante lógico, porque su lógica de sobrecarga será muy a menudo diferente de la lógica, en base a la cual fueron priorizadas. Estas advertencias me han ayudado muchas veces, o al menos no me han molestado demasiado. Bueno, y las operaciones lógicas que definen la lógica del código && y ||, que deberían estar delimitadas por paréntesis de todos modos...

 
A100:

Yo tampoco soy un profesional, pero más de una vez me han molestado esos avisos porque entre decenas (y a veces cientos) de esos avisos superfluos se me han perdido otros realmente importantes y necesarios

¿Y no está claro qué advertencias puede tener si pone paréntesis en todas partes? Y si se tratara de otros casos, no hace falta meter todo en el mismo saco

Por lo general, sucede que hay que arreglar rápidamente alguna condición. Por ejemplo, cometí un error en una condición en la que escribí && en un lugar y debería haberlo sustituido por ||. Lo he corregido y he pulsado F7. Inmediatamente recibí una advertencia. Miro con precisión y veo que el resultado con los cambios actuales no es el que esperaba. Lo he corregido - todo es normal. Es decir, el compilador me ayudó mucho con su mensaje.


Pero si tiene muchas advertencias, escriba su código con más cuidado. ¿O no los edita por principio, demostrando a la máquina que está equivocada?

 
A100:

Le impide hacerlo porque crea paréntesis innecesarios. Pero poner soportes adicionales para los amantes de este negocio no molesta a nadie, y lo más importante - todo el mundo estaría bien con él

Dudo que sea configurable en el estudio - porque no hay advertencias adicionales sobre paréntesis supuestamente olvidados (al menos por defecto), por lo que no hay tema de configuración

Totalmente de acuerdo. Ya que te llamas programador, ten la amabilidad de aprender las prioridades de las operaciones, al menos recuerda que existen. Me han pedido que añada un robot recientemente, pero me pidieron que añadiera init() y start() y cuando les pregunté cuándo lo habían escrito me dijeron que había sido hace una semana. Por lo tanto, hay algunos "codificadores" por ahí, pero no vale la pena dejar advertencias adicionales para ellos.

 
Vladimir Simakov:

Estoy totalmente de acuerdo. Ya que te llamas programador, sé amable y aprende las prioridades de la operación, al menos recuerda que existen. Me han pedido que termine de escribir un robot recientemente, pero tengo init() y start() ahí y cuando les pregunté cuándo lo habían escrito me dijeron que había sido hace una semana. Por lo tanto, todavía hay "codificadores", pero para esas personas no vale la pena dejar advertencias innecesarias.

El conocimiento de las prioridades no tiene nada que ver con las advertencias. Escribo código tranquilamente y no me llamo programador.

 
A100:

Dudo que se haya montado en el estudio

está disponible en las propiedades del proyecto. solíamos tener una regla de hierro en uno de nuestros proyectos - arreglar todas las advertencias en las versiones de lanzamiento, incluyendo algunos paranoicos W4

https://docs.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level?view=vs-2017

A mí me parece que cuantas más advertencias mejor, si están de alguna manera justificadas y se pueden desactivar

 
fxsaber:

Si tiene un gran número de avisos, escriba el código con más cuidado. ¿O no los corrige por principio, demostrando que la máquina se equivoca?

Utilizo sobre todo código compatible con C++ (y a menudo incluso un solo archivo). C++ no los tiene, y los paréntesis innecesarios, como ya se advirtió aquí, dificultan la comprensión

Razón de la queja: