Errores, fallos, preguntas - página 3138

 
Valeriy Yastremskiy #:

La dimensionalidad de un array estático es una constante, no un int.

Lo siento, he contestado sin comprobarlo.

Me uno a la pregunta, constante estática int, ushort, el efecto es el mismo, aunque en la ayuda:

Variables

El índice de la matriz sólo puede ser un número entero.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Bichos, errores, preguntas

x572intraday, 2022.01.08 20:44

   int dim=5;
   int Arr1[5];// OK
   int Arr2[dim];// '[' - invalid index value

O estoy totalmente jodido, o si no es un bicho, pega un espadazo en la Ayuda.


 
Valeriy Yastremskiy #:

Lo siento, respondí sin comprobarlo.

Me uno a la pregunta, constante estática wint, efecto ushort es el mismo, aunque en la ayuda:

Variables

Sólo un número entero puede ser un índice de matriz.


La respuesta era casi correcta. Una variable no es una constante.

 
Valeriy Yastremskiy #:

Lo siento, respondí sin comprobarlo.

Me uno a la pregunta, constante estática wint, efecto ushort es el mismo, aunque en ayuda:

Variables

Sólo un número entero puede ser un índice de matriz.


En lugar de

int dim=5;

poner en la parte superior del programa.

#define  dim 5
Pero personalmente encuentro esto... no tanto como una muleta, sino una especie de alternativa no muy conveniente a la deseable pero inviable e inviable versión original.
 
Alexey Viktorov #:

La respuesta era casi correcta. Una variable no es una constante.

Es decir, ¿declarar una variable entera constante no es una constante?

 
x572intraday #:

En lugar de

poner en la parte superior del programa

Pero personalmente, encuentro esto... no como una muleta, sino como una alternativa a una variante original deseable, pero inviable e irrealizable.

Bueno la sustitución es diferente, por supuesto en lugar de dim sustituyendo un entero el compilador se lo traga.

 
Valeriy Yastremskiy #:

Es decir, ¿declarar una variable entera constante no es una constante?

Una variable constante no es un valor constante. La palabra clave es variable.
 
Alexey Viktorov #:
Una variable constante no es un valor constante. La palabra clave es variable.
Gracias, eso tiene más sentido)
 

Entiendo por qué, pero hay muy poca información sobre IsStopped() en la Ayuda. Me gustaría tener más detalles:

  1. ¿Tiene sentido meterlo en todos los bucles seguidos? ¿O hay situaciones en las que no es necesario volver a hacerlo? O, para mayor seguridad, ¿debemos añadirlas en todas partes? Sospecho que la función es más útil en losbucles de alta carga, por ejemplo, cuando se prueba un enorme rates_total en TFs pequeñas, cuando se prueba un gran número de objetos gráficos, etc.
  2. ¿Dónde más, además de los bucles, puedo/debo meterlo? No he visto ningún ejemplo, salvo los ciclos, en ningún otro sitio.
 
x572intraday #:

Veo para qué sirve, pero hay muy poca información sobre IsStopped() en la Ayuda. Me gustaría tener más detalles:

  1. ¿Tiene sentido meterlo en todos los bucles seguidos? ¿O hay situaciones en las que no es necesario volver a hacerlo? O, para mayor seguridad, ¿debemos añadirlas en todas partes? Sospecho que la función es más útil en losbucles de alta carga, por ejemplo, cuando se prueba un enorme rates_total en TFs pequeñas, cuando se prueba un gran número de objetos gráficos, etc.
  2. ¿Dónde más, además de los bucles, puedo/debo meterlo? No he visto ningún ejemplo, excepto los bucles.

Esto se utiliza más a menudo en los bucles donde se puede obtener accidentalmente un bucle infinito. O intencionalmente en bucle en un script o servicio.

 

¿Por qué no podemos hacerlo?

void OnStart()
  {
   TFunc f = someFunction;
  }

class Test
  {
  } ;
typedef void (*TFunc)(Test*);
void someFunction(Test &a)  { }



no se puede convertir la función 'someFunction' en el tipo 'TFunc'