Erros, bugs, perguntas - página 1692

 

Duas fontes com o mesmo conteúdo ocupam um número diferente de bytes (duas vezes mais diferente).

Parece que a dada altura há algum mexerico unicode.

Em geral, como posso fazer um ficheiro grande para ocupar metade do número de bytes? Ao mesmo tempo, para que o texto da fonte permaneça inalterado.

 
fxsaber:

Duas fontes com o mesmo conteúdo tomam um número diferente de bytes (duas vezes mais diferente).

Parece haver aí, a dada altura, algum mexer em unicode.

Em geral, como é que faço um ficheiro grande para ocupar metade do número de bytes? Ao mesmo tempo, para que o texto fonte permaneça inalterado.

Copiei o conteúdo do ficheiro grande para o Bloco de Notas e guardei-o num novo ficheiro. Tornou-se metade do tamanho.

E como fazer metaeditor para não criar "grosso"?

 
fxsaber:

E como fazer com que o metaeditor não crie os "gordos"?

Não pode. É sempre um novo tamanho.
 
fxsaber:
Tê-lo-ia executado primeiro. O erro é SOMENTE aquiAindaAll chama antes que isso aconteça sem problemas.

Este é realmente esquisito. Os prós aqui estão errados nas três chamadas.

É uma história diferente.

Não, é a mesma coisa. Já analisei as chamadas de método no depurador: comentei a última chamada no vosso exemplo, coloquei pontos de ruptura em ambos os métodos da classe e comecei a depuração. O ponto de quebra foi removido do método func(const int&), ou seja, o compilador expulsou este método, pelo que a ambiguidade foi eliminada. E se chamar uma função com um argumento constante, o compilador evidentemente não remove o método com a referência e o resultado é uma sobrecarga insolúvel... Algo parecido com isto. Em qualquer caso, o seu código é falho em C++.

 

Sergei Vladimirov:

Em qualquer caso, o seu código é falho em C++.

Em mql, há recheio adicional com referências. Seja como for, não gosto do comportamento do código acima.

void f(const int& x)
{}

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

Este é realmente esquisito. Há aqui um erro nos prós e contras das três chamadas.

Neste caso, eu não gostaria que houvesse qualquer mudança no sentido de C++.
 
Комбинатор:

Em mql há engenhocas de ligação extra. De qualquer modo, não gosto do comportamento do código acima.

void f(const int& x)
{}

void OnStart()
{
   f(5); // ошибка
}
O erro está correcto aqui.
 
fxsaber:
Neste caso, eu não gostaria que houvesse qualquer mudança no sentido de C++.

Agora, esta é a questão do coro do debate. Acabei de lhe dizer "onde está o cão no buraco".

O comportamento, a propósito, é o mesmo que em C++, mas se deixar apenas as duas primeiras chamadas, o compilador deita fora uma das funções, de modo que a incerteza desaparece. Mas continua a ser um erro, apenas corrigido automaticamente pelo compilador.

 
fxsaber:
O erro está correcto aqui.
Sim, mas na minha mente não deve haver nenhuma )
 
Sergei Vladimirov:
Mas é uma questão discutível. :) Eu apenas lhe respondi "onde o cão está escondido".

Não há realmente lá nenhum cão. A prioridade em sobrecarga pode ser definida no compilador, como os programadores fizeram com as duas primeiras chamadas.

Razão: