Errores, fallos, preguntas - página 2212

 

Estimados desarrolladores, por favor aclárense, ¿es normal que el compilador no dé una advertencia sobre la conversión de tipos en una cadena de este tipo?

const bool barsToStart = Bars( _Symbol, _Period, startTime, timeCurrent );
 
A100:

Si aquí

(*) implica A::a = 2, no ::a = 2

entonces S::q = S::z debería estar implícito ahí también, no S::q = ::z

Por qué S::z estaría implícito ahí, si la expresión no está en una función del objeto S, sino a nivel global.

El nivel global es, es decir, ::z está implícito - sin ninguno de estos.

 
Alexey Kozitsyn:

Estimados desarrolladores, por favor aclárense, ¿es normal que el compilador no dé una advertencia sobre la conversión de tipos en una cadena de este tipo?

Extraño... No me dice nada...

 
Georgiy Merts:

Eso es extraño... El mío no dice nada...

Eso es todo, no escribe nada. Y debería, creo...

 
Alexey Kozitsyn:

Eso es todo, no escribe nada. Pero debería, creo...

¿Quieres decir que el resultado de int se convierte en bool?

Sí, en teoría, debería generar una advertencia.

 
Georgiy Merts:

¿Quieres decir que el resultado de int se convierte en bool?

Sí, se supone que debe dar un aviso.

Sí, la conversión implícita va sin aviso.

 
Alexey Kozitsyn:

Eso es todo, no escribe nada. Pero debería, creo...

Debería hacerlo. Puedo adivinar por qué no lo hace. Se supone que el cero es falso, todo lo que no sea cero es verdadero.

es decir.

bool b1 = 123; // true
b1 = 0; // false

Probablemente por estas normas lo hacen, aunque de nuevo, creo que la advertencia debe ser

Escribe en la SD.

 
Alexey Volchanskiy:

Escribir en la SD

Sí, lo hice... pero no hay respuesta. En general, los DBO funcionan de forma extraña: escribo una solicitud, la solicitud es aceptada para su consideración. Y luego el silencio. ¿Por qué debo presentar una solicitud si no voy a responder a ella? Y así en absolutamente todas las aplicaciones.

 
Alexey Kozitsyn:

Estimados desarrolladores, por favor aclárense, ¿es normal que el compilador no dé una advertencia sobre la conversión de tipos en una cadena de este tipo?

Respuesta de los desarrolladores:

Какого предупреждения вы ждёте? 0 это false, не 0 - true.
Это обычная практика в логических выражениях

Tienes que tener más cuidado.

 
Alexey Kozitsyn:

Estimados desarrolladores, por favor aclárense, ¿es normal que el compilador no dé una advertencia sobre la conversión de tipos en una cadena de este tipo?

Bares ver lo que devuelve y lo que usted está tratando de equiparar.

const bool barsToStart = Bars( _Symbol, _Period, startTime, timeCurrent ) == 0 ? false : true;
Razón de la queja: