エラー、バグ、質問 - ページ 1692

 

同じ内容の2つのソースは、異なるバイト数を占めます(2倍違います)。

どこかのタイミングでunicodeをいじっているようです。

一般に、大きなファイルを半分のバイト数にするにはどうすればよいのでしょうか?同時に、ソースのテキストを変更しないように。

 
fxsaber:

同じ内容の2つのソースは、異なるバイト数を占めます(2倍違います)。

どこかのタイミングでunicodeをいじっているようです。

一般に、大きなファイルを半分のバイト数にするにはどうしたらよいのでしょうか?同時に、原文が変わらないように。

大きなファイルの中身をメモ帳にコピーして、新しいファイルに保存しました。半分のサイズになった。

また、メタエディターで「濃い」を作らないようにするにはどうしたらいいのでしょうか?

 
fxsaber:

また、メタエディターで「太い」ものを作らないようにするにはどうしたらいいのでしょうか?

無理でしょう。毎回、新しいサイズになるんです。
 
fxsaber:
最初に実行したはずです。エラーはここだけです。それ以前のすべての呼び出しは問題なく実行されます。

これは本当に不思議です。ここでのプラスは、3つのコールすべてで間違っている。

別物です。

いいえ、同じです。デバッガーでメソッド呼び出しに 目を通しました。あなたの例の最後の呼び出しをコメントアウトし、クラスの両方のメソッドに ブレークポイントを置き、デバッグを開始しました。void func(const int&)メソッドからブレークポイントが削除された、つまりコンパイラがこのメソッドを追い出したので、曖昧さが解消されました。また、定数引数で関数を呼び出した場合、コンパイラは明らかに参照を持つメソッドを削除せず、結果として解決不可能なオーバーロードになってしまいます...。こんな感じ。いずれにせよ、あなたのコードはC++では欠陥があります。

 

Sergei Vladimirov:

いずれにせよ、あなたのコードはC++では欠陥があります。

mqlでは、参照で余計な詰め込みがある。いずれにせよ、上のコードの動作は好きではありません。

void f(const int& x)
{}

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

これは本当に不思議です。ここでは、3つのコールすべてにおいて、プラスに誤りがあります。

この場合、C++への変更は全く望んでいません。
 
Комбинатор:

mqlの場合は、さらにリンクの仕掛けがあります。とにかく、上のコードの挙動が気に入らないのです。

void f(const int& x)
{}

void OnStart()
{
   f(5); // ошибка
}
こちらのエラーが正しいです。
 
fxsaber:
この場合、C++への変更は全く望んでいません。

さて、これが議論の大合唱の 問題です。私は今、「犬が穴の中にいる場所」をお伝えしました。

ちなみに動作はC++と同じだが、最初の2回の呼び出しだけを残しておくと、コンパイラが関数の1つを捨ててしまうので、不確実性が消える。しかし、コンパイラによって自動的に修正されるだけで、エラーであることに変わりはない。

 
fxsaber:
こちらのエラーが正しいです。
そうですね、でも私の中では全くない方がいいと思っています )
 
Sergei Vladimirov:
しかし、それは議論の余地が ある質問です。:)今、「犬の隠し場所」をお答えしました。

そこには本当に犬がいないのです。オーバーロードの優先順位は、開発者が最初の2つの呼び出しで行ったように、コンパイラで設定することができます。