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

 
Nikolai Semko:

1881

1886年のビルドから修正された。

ニコライ・セムコ
. そして、まだあります。どうなんでしょうね。
1年前はそんな問題は存在しなかったように思います。

問題点を見抜けなかっただけでしょう。

CopyTime, CopyOpen, CopyHighなどを退化させたiTime, iOpen, iHighなどの関数を 追加したところ、最新のデータがまだ読み込まれていないのに、その結果を返してしまう場合があることがわかりました。i-Functionsの場合、これが非常に重要であることがわかりました。

これですべてが正しく、高速に動作するはずです。正式なビルドを待つ。

 
Slava:

1886年版ビルドから修正されました。

問題点を見ていないだけです。

CopyTime, CopyOpen, CopyHighなどを退化させたiTime, iOpen, iHighなどの関数を追加したところ、最新のデータがまだ読み込まれていないのに、その結果を返してしまう場合があることがわかりました。i-Functionsの場合、それが非常に重要であることがわかりました。

これですべてが正しく、高速に動作するはずです。正式なビルドを待ってください。

了解です、ありがとうございます。
つまり、現在入手可能なビルドは1881年?それとも、何か見落としがあったのでしょうか?
 
Nikolai Semko:
了解です、ありがとうございます。
では、現在入手可能なビルドは1881ですか?それとも、何か見落としがあったのでしょうか?
現在入手可能なビルド1881
 

実行エラーです。

class A {
public:
        template<typename T>
        A* A::f( T )
        {
                int size = ArraySize( i ) + 1;
                Print( __FUNCTION__, ":", size );
                if ( ArrayResize( i, size ) == -1 )
                        Print( __FUNCTION__, ":Error:", GetLastError());
                return &this;
        }
        template<typename T>
        A* A::operator+( T t ) { return  f( t ); }
        int i[];
};
void OnStart()
{
        A a;
        a + 0 + 0;
}

結果:期待通り。

A::f<int>:1 A.:f<int>:1
A::f<int>:753790661 A::f<int>:2
A::f<int>:Error:4007の場合

それ以外は。

void OnStart()
{
        A a;
        a.f( 0 ).f( 0 );
}

OKです。何が違うの?なぜ、配列のサイズが 突然753790660になり、その結果、メモリが突然底をついたのでしょうか(4007)?MT51881

さらに...最初のバリアントで文字通り3文字を削除しても、結果はオーケーです

 
A100:

実行エラー:
なぜ、配列のサイズが突然753790660になり(1ではなく)、その結果、突然メモリ不足になったのですか(4007)?MT51881

MT51881
debug - すべてOKです。
release -コンパイルエラー"Internal compiler error".

 

コンパイルエラーです。

class A {
        int A::f() { return NULL; } //нормально
        A  *A::g() { return NULL; } //Error: object of 'A' cannot be returned, copy constructor 'A::A(const A &)' not found
};
MT51881
 
A100:

なぜ、このようにクラスの中に{}を書くのか(::)?

 

コンパイルエラーです。

class A {
        int A::f();
        template <typename T>
        A*  A::g();
};
int A::f() { return NULL; } //нормально
template<typename T>
A*  A::g() { return NULL; } //Error: 'g' - function already defined and has different type
 
fxsaber:

なぜ、このようにクラスの中に{}を書くのか(::)?

なぜダメなのか?

class A {
        void A::f() {} //нормально
};
だいたいこんな感じです...。書きたいんだけど...。したくても、しない。
 
A100:

なぜダメなのか?

理由にはならない。

なんだか、こう...。書きたいのは...。したくても、しない。
これは、コードを読むときにとても役に立ち、ある状況でのミスを回避することができます。