Erros, bugs, perguntas - página 3102

 
mktr8591 #:
de forma semelhante - (const A*) converter para A*.
Não é muito claro o que se pretende transmitir ao fxsaber. Ele compreende exactamente o que está a acontecer no código sem si. Mostra-lhe apenas uma situação que não deveria ser. O compilador deve impedir tais conversões.
 
Sergey Gridnev #:
Não é muito claro o que se pretende transmitir ao fxsaber. O que se passa exactamente no código é algo que ele compreende sem si. Mostra apenas uma situação que não deveria estar lá. O compilador deve suprimir tais conversões.
É um ponto discutível. Sem estas conversões poderá ter muitos problemas em alguns lugares. Além disso, mesmo essas proibições do compilador podem ser contornadas - há muitas maneiras no fórum.
 
mktr8591 #:

E a linha *2* compila e funciona bem. Porquê?

A lista de inicialização é a única forma legal (e especificamente fornecida) de inicializar constantes não estáticas.

 
Andrei Trukhanovich #:

A lista de inicialização é a única forma legal (e especificamente destinada) de rubricar constantes não estáticas.

Por isso alterou o seu valor posteriormente

 
A100 #:

Assim, ele mudou o seu significado depois.

Sim, desatento. Bug? As características da lista de inicialização devem aplicar-se apenas ao objecto que está a ser construído

 
Andrei Trukhanovich #:

Sim, desatento. Bug? As características da lista de inicialização só devem ser relevantes para o objecto que está a ser construído

Bug. Também não o compreendi no início. É por isso que estou a dizer que se deve escrevê-lo de forma a que a maioria das pessoas o entenda. Isto também se aplica à interface

 
A100 #:

Bug. Também não o compreendi de imediato. É por isso que digo que se deve escrevê-lo de tal forma que a grande maioria das pessoas o entenda. Isto também se aplica à interface.

Concordo com os relatórios de insectos, claro.

A interface é outra história. Exemplo :

Se um piloto, que sabe pilotar um avião perfeitamente bem, mudar para outro tipo de avião com um sistema de controlo diferente, sem estudar os manuais, não vai compreender muito.

É impossível fazer uma interface complexa que até a maioria dos profissionais possa compreender sem estudar a documentação.

 
É um erro de compilação:
class T {};                          //(1)
template<typename T> void f( T* ) {} //(2) Error: 'T' - identifier already used
E se trocar:
template<typename T> void f( T* ) {} //(2)
class T {};                          //(1)

está bem. Qual é a diferença fundamental?

 
Olá a todos! Comecei recentemente a treinar com uma conta de demonstração. Hoje abri: Ajuda - MQL5web-terminal. Depois disso, a plataforma de comércio parou de carregar. Quando o fiz, verificou-se que a minha conta demo tinha sido apagada com todas as análises técnicas que lá tinha treinado. Tive de abrir uma nova conta. Porque é que isto aconteceu? Isto acontece a contas reais?
 
mktr8591 #:

Em b3095, eu dirijo um guião:

Se remover a sobrecarga f1(T* & Ptr), todas as 5 chamadas retornam vazias f1<const X>(const X*const).

Isto é algum tipo de característica?

Eu queria escrever esta contradição em 3 linhas, mas não funcionou de uma só vez