Errores, fallos, preguntas - página 1692

 

Dos fuentes con el mismo contenido ocupan diferente número de bytes (dos veces diferente).

Parece que en algún momento se han producido algunos chanchullos con el unicode.

En general, ¿cómo hago para que un archivo grande ocupe la mitad de bytes? Al mismo tiempo, para que el texto de la fuente permanezca inalterado.

 
fxsaber:

Dos fuentes con el mismo contenido ocupan diferente número de bytes (dos veces diferente).

Parece que en algún momento se han producido algunos chanchullos con el unicode.

En general, ¿cómo hago para que un archivo grande ocupe la mitad de bytes? Al mismo tiempo, para que el texto de origen permanezca inalterado.

Copié el contenido del archivo grande en el Bloc de notas y lo guardé en un nuevo archivo. Se convirtió en la mitad del tamaño.

¿Y cómo hacer para que el metaeditor no cree "espesor"?

 
fxsaber:

¿Y cómo hacer que el metaeditor no cree "gordos"?

No se puede. Cada vez es una talla nueva.
 
fxsaber:
Lo habrías ejecutado primero. El error se produce SOLO aquíTodas las llamadas anteriores a esta pasan sin problemas.

Esta es realmente extraña. Los pluses aquí son erróneos en las tres convocatorias.

Es una historia diferente.

No, es lo mismo. He revisado las llamadas a métodos en el depurador: he comentado la última llamada de tu ejemplo, he puesto puntos de interrupción en ambos métodos de la clase y he empezado a depurar. Se ha eliminado el punto de interrupción del método void func(const int&), es decir, el compilador ha expulsado este método, por lo que se ha eliminado la ambigüedad. Y si llamas a una función con un argumento constante, el compilador evidentemente no elimina el método con la referencia y el resultado es una sobrecarga irresoluble... Algo así. En cualquier caso, su código es defectuoso en C++.

 

Sergei Vladimirov:

En cualquier caso, su código es defectuoso en C++.

En mql, hay un relleno extra con referencias. En cualquier caso, no me gusta el comportamiento del código anterior.

void f(const int& x)
{}

void OnStart()
{
   f(5); // ошибка
}
 
Sergei Vladimirov:

Esta es realmente extraña. Aquí hay un error en los pluses en las tres convocatorias.

En este caso, no me gustaría que hubiera un cambio hacia C++ en absoluto.
 
Комбинатор:

En mql hay artilugios de enlace adicionales. De todos modos, no me gusta el comportamiento del código anterior.

void f(const int& x)
{}

void OnStart()
{
   f(5); // ошибка
}
El error es correcto aquí.
 
fxsaber:
En este caso, no me gustaría que hubiera un cambio hacia C++ en absoluto.

Esa es la cuestión central del debate. Te acabo de decir "dónde está el perro en el agujero".

El comportamiento, por cierto, es el mismo que en C++, pero si dejamos sólo las dos primeras llamadas, el compilador desecha una de las funciones, por lo que la incertidumbre desaparece. Pero sigue siendo un error, sólo que corregido automáticamente por el compilador.

 
fxsaber:
El error es correcto aquí.
Sí, pero en mi opinión no debería haber ninguno.)
 
Sergei Vladimirov:
Pero es una cuestión discutible. :) Acabo de responderte "donde se esconde el perro".

Realmente no hay ningún perro allí. La prioridad en la sobrecarga puede establecerse en el compilador, como hicieron los desarrolladores con las dos primeras llamadas.

Razón de la queja: