Errores, fallos, preguntas - página 3102

 
mktr8591 #:
similarmente - (const A*) convertir a A*.
No está muy claro lo que quieres transmitir a fxsaber. Entiende exactamente lo que ocurre en el código sin ti. Sólo te muestra una situación que no debería ser. El compilador debería evitar estas conversiones.
 
Sergey Gridnev #:
No está muy claro lo que quiere transmitir a fxsaber. Lo que ocurre exactamente en el código es algo que él entiende sin ti. Sólo muestra una situación que no debería estar ahí. El compilador debería suprimir estas conversiones.
Es un punto discutible. Sin estas conversiones puedes tener muchos problemas en algunos lugares. Además, incluso estas prohibiciones del compilador se pueden eludir - hay un montón de maneras en el foro.
 
mktr8591 #:

Y la línea *2* compila y funciona bien. ¿Por qué?

La lista de inicialización es la única forma legal (y específicamente proporcionada) de inicializar constantes no estáticas.

 
Andrei Trukhanovich #:

La lista de inicialización es la única forma legal (y específicamente prevista) de inicializar las constantes no estáticas.

Así que cambió su valor después

 
A100 #:

Así que después cambió su significado.

Sí, desatento. ¿Bicho? Las características de la lista de inicialización sólo deben aplicarse al objeto que se está construyendo

 
Andrei Trukhanovich #:

Sí, desatento. ¿Bicho? Las características de la lista de inicialización sólo deben ser relevantes para el objeto que se está construyendo

Un error. Yo tampoco lo entendí al principio. Por eso digo que hay que escribirlo de manera que la mayoría de la gente lo entienda. Esto también se aplica a la interfaz

 
A100 #:

Un error. Yo tampoco lo entendí de inmediato. Por eso digo que hay que escribirlo de forma que la gran mayoría de la gente lo entienda. Esto también se aplica a la interfaz.

Estoy de acuerdo con los informes de errores, por supuesto.

La interfaz es otra historia. Ejemplo :

Si un piloto, que sabe pilotar perfectamente un avión, se pasa a otro tipo de avión con un sistema de control diferente, sin estudiar los manuales, no entenderá mucho.

Es imposible hacer una interfaz compleja que incluso la mayoría de los profesionales puedan entender sin estudiar la documentación.

 
Es un error de compilación:
class T {};                          //(1)
template<typename T> void f( T* ) {} //(2) Error: 'T' - identifier already used
Y si cambias:
template<typename T> void f( T* ) {} //(2)
class T {};                          //(1)

está bien. ¿Cuál es la diferencia fundamental?

 
Hola a todos. Recientemente he empezado a entrenar en una cuenta demo. Hoy he abierto: Ayuda - MQL5web-terminal. Después de eso, la plataforma de negociación dejó de cargarse. Cuando lo hice, resultó que mi cuenta demo fue borrada con todos los análisis técnicos que había entrenado allí. Tuve que abrir una nueva cuenta. ¿Por qué ha ocurrido esto? ¿Sucede esto con las cuentas reales?
 
mktr8591 #:

En b3095 ejecuto un script:

Si se elimina la sobrecarga f1(T* & Ptr), las 5 llamadas devuelven void f1<const X>(const X*const).

¿Se trata de algún tipo de característica?

Quise escribir esta contradicción en 3 líneas, pero no funcionó de inmediato