Errores, fallos, preguntas - página 2871

 
A100:

La salida será exactamente una cadena literal. Aquí está la prueba de que no hay ninguna huella:

¡No me creo la advertencia del compilador!

¡'+' no es una cadena ! Es un tipo de carácter, en mql ushort 2 bytes

punto.

Es más probable que se trate de un error en la descripción del aviso.

 
Roman:

No me creo la advertencia del compilador.
' ¡No es una cadena! ¡Es un tipo de carácter!

Es más probable que sea un error en la descripción de la advertencia.

No es una cuestión de fe y conjeturas - necesitamos pruebas: un ejemplo sin impresión que demuestre que typename devuelve un literal que no es de cadena, ¿existe? Cuando lo haya, continuemos.

 
A100:

No es una cuestión de fe y conjeturas - necesitamos pruebas: ¿hay algún ejemplo sin impresión que demuestre que se devuelve un literal no de cadena? Cuando lo haya, continuemos.

Aunque typename devuelve un nombre, por eso devuelve como cadena
quizás, pero ¿qué diferencia hay?
Tienes el nombre del tipo y lo tienes. ¿No entiendo qué quieres demostrarme?
Que typename devuelvauna cadena de tipo, pues lógicamente, devuelve un nombre.
Me refería a que devuelve el nombre del tipo, es decir, el tipo se escribe con letras ))

No
pensé en absoluto en qué tipo vuelve y te aferraste a él.
De todos modos, no tiene sentido discutir sobre ello.
 
Roman:
Aunque typename devuelve un nombre, por lo que devuelve como cadena
puede que sí, pero ¿qué diferencia hay?

Parece que has pasado la etapa de la negación... la etapa de la conciencia está comenzando. Te dejo con ello.

 
A100:

Parece que has pasado la etapa de la negación... la etapa de la conciencia está comenzando. Te dejo con ello.

Una vez más, no he afirmado que el tipo en sí vaya a volver, he afirmado que el NOMBRE del tipo va a volver.
Qué tipo está devolviendo NOMBRE, no he pensado en eso en absoluto en nuestra conversación.
Por eso no interviene la etapa de realización; está claro que el nombre es una cadena, si es una cadena.
Pero también hay mql ushort, maldita sea, así que dudé, que en typename se metiera una cadena de 12 bytes.
Si se devolviera el tipo en sí, sería una pasada ))
Sobre la marcha se podrían definir variables ))
No sé si es posible en programa compilado, de hecho es habitual la asignación de memoria.

 
A100:

Esto es en lenguajes abstractos, pero MQL no tiene abstracción - supuestamente no se puede combinar con la velocidad

Aquí hay otra forma de comprobar, 12 bytes como tipo de cadena

Print(sizeof(typename()));
 
Roman:

Aquí hay otra manera de comprobar, 12 bytes como tipo de cadena

Más aún, significa que la Documentación era correcta (pero esto también es una prueba circunstancial)

 
Después de todo, he engañado al sistema.

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

A100, 2020.10.09 00:38

Error de compilación:
void OnStart()
{
    Print(typename("ushort"));      //(1) нормально
    Print(typename(typename('+'))); //(2) Error: 'typename' - unexpected token
}

Tipo doble

template<typename T>
T f( T ) { return typename(T); }
void OnStart()
{
        Print(f(typename('+')));
}

Resultado: cadena

Así que es una prueba directa, no indirecta.
 
A100:

Con mayor razón, la documentación es correcta.

Sí, en la documentación de las plantillas, todo está descrito correctamente.
typename está diseñado para plantillas, por lo que devuelve la cadena de tipo
Simplemente no entendiste que inicialmente escribí que devuelve el tipo NAME, no TYPE name ))
Y empezaste a explicarme la cadena de retorno)
Me confundí y dudé, y pensé que ushort puede devolver.
Pero no, una cuerda sin embargo.

 
Roman:

Claro que es culpa mía, no me leo la documentación y me he inventado el post

(typename)J

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

Roman, 2020.10.07 17:20

Sí, eso también es un error de compilación

#define  J '+'          // char

void OnStart()
{
    Print((typename)J);
}
#define  J '+'          // char

void OnStart()
{
    Print((typename)(J));
}

Razón de la queja: