Bibliotecas: Price_Compare - página 2

 
fxsaber:

¡Claro que puedes! ¿Pero qué feo sería?

En la librería TypeToBytes sin macros no sólo daría miedo, sino que tampoco sería conveniente. Es decir, la librería podría ser simplemente desechada.

Creo que todo tiene que ver con el dominio del lenguaje. Cuando no sabía/entendía OOP - no lo usaba. Todo ha cambiado.

y que tiene que ver el nivel de proficiencia con esto, estamos hablando de uso, y esto es depuración de código, lo cual es difícil con macros...
 
coderex:
y qué tiene que ver el nivel de competencia con esto, estamos hablando de uso, y esto es depuración de código, que es más difícil con macros...

Las macros se usan donde la depuración no es necesaria: en código limpio.

El compilador siempre recibe código limpio sin macros. Si pudieras obtener este código limpio (guardarlo en un archivo), lo verías.

Los desarrolladores pueden hacerlo, pero es poco probable que lo hagan (el interruptor -E en C++).

 
fxsaber:

Las macros se utilizan cuando la depuración no es necesaria: código limpio.

El compilador siempre recibe código limpio sin macros. Si pudieras obtener este código limpio (guardarlo en un archivo), lo verías.

Los desarrolladores pueden hacerlo, pero es poco probable que lo hagan (tecla -E en C++).

¿realmente no me entiendes o eres terco como sueles hacer cuando te comunicas con desarrolladores, defendiendo tu verdadero punto de vista? Más arriba te escribí que me adhiero a la opinión de los programadores que están muy por delante de nosotros en este ámbito, también escribí específicamente dos problemas - uno menor relacionado con la inconveniencia de leer el código, el segundo problema grave en la depuración del código, si usted no entiende realmente, a continuación, vaya a través del código donde se utilizan macros con un depurador....

este es el final de este innecesario jalivar.

 
coderex:

¿realmente no me entiendes o eres terco como sueles hacer cuando te comunicas con los desarrolladores, defendiendo tu verdadero punto de vista? Más arriba te escribí que me adhiero a la opinión de los programadores que están muy por delante de nosotros en esta esfera, también escribí específicamente dos problemas - uno menor relacionado con la inconveniencia de leer el código, el segundo problema grave en la depuración del código, si realmente no entiendes, entonces revisa el código donde se utilizan macros con un depurador....

Respeto totalmente tu punto de vista y los argumentos son claros. Por desgracia, metaeditor.exe no tiene el interruptor -E. Y podría crear código limpio que podría ser leído y depurado con total comodidad.

Al escribir algo no trivial, creo código extremadamente mierdoso. Dándome cuenta de que lo primero es hacerlo funcionar ( y los bugs de los propios desarrolladores se pillan en esta fase). No siempre es obvio cómo enfocarlo arquitectónicamente mejor. Hay rediseños serios al no darse cuenta de algunos puntos al principio del trabajo. Después de la depuración, hay que construir el código torcido en uno más lógico. Se pueden crear nuevas funciones y macros. El objetivo es hacer que todo sea lógico y eliminar cualquier repetición de lógica/código. El código queda bonito, conciso y lógico.

Donde la depuración es realmente difícil es con las plantillas. Las plantillas son un preprocesador complicado. Y es extremadamente difícil de depurar. Por ejemplo, al escribir una super-plantilla TypeToBytes, la depuración era casi imposible. Tampoco era posible escribir un código torcido y luego peinarlo. Había que tenerlo todo en la cabeza y darse cuenta muy bien de lo que pasaba y dónde. Una especie de autoexamen para comprender.

Por eso hay situaciones en las que no se puede prescindir en absoluto de plantillas y preprocesador. Y los partidarios del código puro probablemente no imaginaban estas situaciones.

 
Automated-Trading:

Comparar precios:

Autor: fxsaber

Interesante.

#define EPSILON (1.0 e-7 + 1.0 e-13)
¿Por qué su EPSILON se define como este valor?


 
Alain Verleyen:

¿Por qué su EPSILON está definido con este valor?

No recuerdo...

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Альтернативные реализации стандартных функций/подходов

fxsaber, 2016.09.02 10:58

double MyNormalizeDouble( const double Value, const uint digits )
{
  static const double Points[] = {1.0 e-0, 1.0 e-1, 1.0 e-2, 1.0 e-3, 1.0 e-4, 1.0 e-5, 1.0 e-6, 1.0 e-7, 1.0 e-8};
  const double point = digits > 8 ? 1.0 e-8 : Points[digits];
  const long Integer = (long)Value; // чтобы не создавать крайне медленный относительный epsilon

  return((long)((Value > 0) ? (Value - Integer) / point + HALF_PLUS : (Value - Integer) / point - HALF_PLUS) * point + Integer);
}
 

Foro sobre negociación, sistemas automatizados de negociación y ensayo de estrategias de negociación

Implementaciones alternativas de funciones/enfoques estándar

fxsaber, 2016.09.02 10:58 AM.

Ahora funciona siempre correctamente, pero más rápido que el original por sólo 10%.
double MyNormalizeDouble( const double Value, const uint digits )
{
  static const double Points[] = {1.0 e-0, 1.0 e-1, 1.0 e-2, 1.0 e-3, 1.0 e-4, 1.0 e-5, 1.0 e-6, 1.0 e-7, 1.0 e-8};
  const double point = digits > 8 ? 1.0 e-8 : Points[digits];
  const long Integer = (long)Value; // para no crear un épsilon relativo extremadamente lento

  return((long)((Value > 0) ? (Value - Integer) / point + HALF_PLUS : (Value - Integer) / point - HALF_PLUS) * point + Integer);
}
#define  HALF_PLUS (0.5 + 1.0 e-7)
 

¿Por qué son malas las macros de preprocesador y cuáles son las alternativas?

Why are preprocessor macros evil and what are the alternatives?
Why are preprocessor macros evil and what are the alternatives?
  • stackoverflow.com
I have always asked this but I have never received a really good answer; I think that almost any programmer before even writing the first "Hello World" had encountered a phrase like "macro should never be used", "macro are evil" and so on, my question is: why? With the new C++11 is there a real alternative after so many years? The easy...
 
Alain Verleyen:

¿Por qué son malas las macros del preprocesador y cuáles son las alternativas?

Lo malo no son las macros, sino su uso analfabeto.

[Eliminado]  
fxsaber:

El mal no son las macros, sino su uso analfabeto.

Esa es la cuestión, las macros no están protegidas contra el mal uso.

Aparecieron cuando no había clases, plantillas ni constantes.

Ahora su uso no tiene sentido.