Erros, bugs, perguntas - página 2256

 
Nikolai Semko:

1881

Correcção desde a construção de 1886.

Nikolai Semko:
. E há mais. Não tenho a certeza sobre isso.
Há um ano atrás, tais problemas pareciam não existir.

Só não se viram os problemas.

Quando adicionámos as funções iTime, iOpen, iHigh etc., que na realidade são degradadas CopyTime, CopyOpen, CopyHigh etc., vimos que havia casos em que os últimos dados ainda não tinham sido carregados e as funções devolviam o resultado. No caso das i-Funções, isto revelou-se crítico.

Tudo deve funcionar correcta e rapidamente agora. Esperar pela construção oficial.

 
Slava:

Fixo desde a construção de 1886.

Só não viu os problemas.

Quando adicionámos as funções iTime, iOpen, iHigh etc., que na realidade são degeneradas CopyTime, CopyOpen, CopyHigh etc., vimos que há casos em que os últimos dados ainda não estão carregados e as funções retornam o resultado. No caso das i-Funções, revelou-se crítico.

Tudo deve estar a funcionar correcta e rapidamente agora. Aguardar a construção oficial.

Já está, obrigado.
Ou seja, a construção actual disponível é 1881? Ou será que me escapou alguma coisa?
 
Nikolai Semko:
Já está, obrigado.
Então a construção actual disponível é 1881? Ou será que me escapou alguma coisa?
Actual construção disponível 1881
 

Erro durante a execução:

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;
}

Resultado: Esperado:

R::f<int>:1 A::f<int>:1
R::f<int>:753790661 A::f<int>:2
R::f<int>:Erro:4007

Caso contrário:

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

OK. Qual é a diferença? Porque é que o tamanho da matriz se tornou subitamente 753790660 (em vez de um) e, como consequência, a memória ficou subitamente esgotada (4007) ? MT5\1881\32

Além disso... Se eliminarmos literalmente três caracteres na primeira variante, o resultado também será bom

 
A100:

Erro de execução:
Porque é que o tamanho da matriz se tornou subitamente 753790660 (em vez de um) e por isso ficou subitamente sem memória (4007) ? MT5\1881\32

MT5\1881\64
debug - tudo ok.
release - erro de compilação "erro interno do compilador".

 

Erro de compilação:

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
};
MT5\1881\32
 
A100:

Porque escreveria {} dentro de uma aula como esta (:::)?

 

Erro de compilação:

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:

Porque escreveria {} dentro de uma aula como esta (:::)?

Porque não?

class A {
        void A::f() {} //нормально
};
É mais ou menos assim... Quero escrevê-lo... se eu quiser, não quero.
 
A100:

Porque não?

Não é uma razão.

É mais ou menos assim... Eu quero escrever... se eu quiser, não quero.
Isto ajuda muito na leitura do código e evita erros em algumas situações.