Bug de compilador com parâmetro de modelo = vazio* - página 10

 
Ilya Malev:
Quanto aos "programadores normais lembram-se das prioridades das operações C++ como uma tabela de multiplicação",
Ninguém expressou tal tese. Eu mesmo uso a guia na Documentação
 
fxsaber:

Exatamente! Não sou nada profissional, tais avisos já me ajudaram 100 vezes.

Também não sou profissional, mas já fui incomodado por tais avisos mais de uma vez, porque entre dezenas (e às vezes centenas) de tais avisos supérfluos, os realmente importantes e necessários foram perdidos

E não está claro que tipo de avisos você pode ter se colocar parênteses em todos os lugares? E se foi sobre outros casos, não há necessidade de misturar as coisas

 
A100:

Para que o conceito possa ser implementado no compilador. Ninguém proíbe a colocação de parênteses extras. A questão é sobre avisos desnecessários

bem, no estúdio, isto é configurado por um nível.

E, na verdade, ninguém o impedirá de remover esses avisos alterando o código para que o compilador goste dele.

 
TheXpert:

Bem, no estúdio, é definido por um nível.

E ninguém impede que você remova esses avisos alterando o código para que o compilador goste dele.

É um empecilho, porque depois há parênteses extras. Mas ninguém impede os amantes desta causa de colocar parênteses extras, e o mais importante - todos ficariam felizes com isso

Duvido que seja configurável em estúdio - porque não há avisos redundantes sobre parênteses supostamente esquecidos (pelo menos por padrão) e, portanto, não está sujeito a configuração

 
A100:

Eu não me importo. Basta deixar esses avisos na antiga MQL4.

É assim que eles permanecem na maior parte do tempo

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;
 }

Em µl4 jura em tudo, em µl5 somente em operações << e >> o que é bastante lógico, porque sua lógica de sobrecarga será na maioria das vezes muito diferente da lógica, com base na qual foram priorizados. Estas advertências me ajudaram muitas vezes, ou pelo menos não me incomodaram muito. Bem, e as operações lógicas que definem a lógica do && e || código, que devem ser delimitadas por parênteses de qualquer forma...

 
A100:

Também não sou profissional, mas já fui incomodado por tais avisos mais de uma vez porque entre dezenas (e às vezes centenas) de tais avisos supérfluos eu perdi avisos realmente importantes e necessários

E não está claro que avisos você pode ter se colocar parênteses em todos os lugares? E se foi sobre outros casos, você não precisa juntar tudo

Normalmente isso acontece para que você tenha que consertar rapidamente alguma condição. Por exemplo, eu cometi um erro em uma condição em que escrevi && em um lugar e deveria tê-lo substituído por ||||. Eu corrigi e apertei F7. Imediatamente recebi um aviso. Eu olho com precisão e vejo que o resultado com as mudanças atuais não é o que eu esperava. Eu corrigi - tudo é normal. Ou seja, o compilador me ajudou muito com sua mensagem.


Mas se você tiver um monte de avisos, escreva seu código com mais cuidado. Ou você não as edita por uma questão de princípio, provando à máquina que ela está errada?

 
A100:

Impede que você o faça porque cria parênteses desnecessários. Mas colocar parênteses extras não é impedido pelos amadores, e o principal é que todos ficariam felizes com isso.

Duvido que seja configurável no estúdio - porque não há avisos extras sobre parênteses supostamente esquecidos (pelo menos por padrão), portanto não há assunto de configuração

Totalmente de acordo. Como você se diz programador, seja gentil o suficiente para aprender as prioridades das operações, ao menos lembre-se que elas existem. Recentemente me pediram para acrescentar um robô, mas me pediram para acrescentar init() e start() e quando lhes perguntei quando o escreveram, me disseram que havia sido há uma semana. Portanto, ainda existem "codificadores", mas para tais pessoas não vale a pena deixar avisos desnecessários.

 
Vladimir Simakov:

Eu concordo plenamente. Como você se diz programador, seja gentil e aprenda as prioridades de operação, pelo menos lembre-se que elas existem. Recentemente me pediram que terminasse de escrever um robô, mas eu tenho init() e comecei() lá e quando lhes perguntei quando o escreveram me disseram que já tinha sido há uma semana. Portanto, ainda existem "codificadores", mas para tais pessoas não vale a pena deixar avisos desnecessários.

O conhecimento das prioridades não tem nada a ver com avisos. Eu escrevo código silenciosamente e não me considero um programador.

 
A100:

Duvido que tenha sido instalado no estúdio

está disponível nas propriedades do projeto. costumávamos ter uma regra de ferro em um de nossos projetos - fixar todos os avisos nas versões de lançamento, incluindo alguns W4 paranóicos

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

Parece-me - quanto mais avisos, melhor, se forem de alguma forma justificados e puderem ser desligados

 
fxsaber:

Se você tiver um grande número de avisos, escreva o código com mais cuidado. Ou você não os corrige por uma questão de princípio, provando que a máquina está errada?

Eu uso principalmente código compatível C++ (e muitas vezes até mesmo um único arquivo). C++ não os tem, e parênteses desnecessários, como já foi observado aqui, dificultam a compreensão

Razão: