Errores, fallos, preguntas - página 2256

 
Nikolai Semko:

1881

Corregido desde la construcción de 1886.

Nikolai Semko:
. Y hay más. No estoy seguro de ello.
Hace un año estos problemas no parecían existir.

Simplemente no viste los problemas.

Cuando añadimos las funciones iTime, iOpen, iHigh, etc., que en realidad son funciones degeneradas CopyTime, CopyOpen, CopyHigh, etc., vimos que había casos en los que los últimos datos no se habían cargado todavía y las funciones devolvían el resultado. En el caso de i-Functions esto resultó ser crítico.

Ahora todo debería funcionar correctamente y con rapidez. Esperar a la construcción oficial.

 
Slava:

Arreglado desde la compilación de 1886.

Simplemente no has visto los problemas.

Cuando añadimos las funciones iTime, iOpen, iHigh, etc., que en realidad son funciones degeneradas CopyTime, CopyOpen, CopyHigh, etc., vimos que hay casos en los que los últimos datos no están cargados todavía y las funciones devuelven el resultado. En el caso de i-Functions resultó ser crítico.

Ahora todo debería funcionar correctamente y con rapidez. Espera a la compilación oficial.

Lo tengo, gracias.
Es decir, ¿la construcción actual disponible es la de 1881? ¿O me he perdido algo?
 
Nikolai Semko:
Entendido, gracias.
¿Así que la construcción actual disponible es 1881? ¿O me he perdido algo?
Construcción actual disponible 1881
 

Error durante la ejecución:

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:

A::f<int>:1 A::f<int>:1
A::f<int>:753790661 A::f<int>:2
A::f<int>:Error:4007

Por lo demás:

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

DE ACUERDO. ¿Cuál es la diferencia? ¿Por qué el tamaño del array se ha convertido de repente en 753790660 (en lugar de uno) y como consecuencia se ha agotado la memoria (4007)? MT5\1881\32

Además... Si eliminamos literalmente tres caracteres en la primera variante, el resultado también estará bien

 
A100:

Error de ejecución:
¿Por qué el tamaño del array se ha convertido repentinamente en 753790660 (en lugar de uno) y, por tanto, se ha quedado sin memoria (4007)? MT5\1881\32

MT5\1881\\N-ES
debug - todo bien.
release - error de compilación "Internal compiler error".

 

Error de compilación:

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:

¿Por qué escribir {} dentro de una clase como ésta (::)?

 

Error de compilación:

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:

¿Por qué escribir {} dentro de una clase como ésta (::)?

¿Por qué no?

class A {
        void A::f() {} //нормально
};
Es más o menos así... Quiero escribirlo... si quiero, no lo hago.
 
A100:

¿Por qué no?

No es una razón.

Es algo así... Quiero escribir... si quiero, no lo hago.
Esto ayuda mucho a la hora de leer el código y evita errores en algunas situaciones.