My approach. The core is the engine. - page 179

 
Nikolai Semko:

It's good to see you've decided to put the creative arrow on the rails at MQL5.

I was always going to do that. Never talked about spreading it out for MT4. )

So far I haven't seen any difficulties with the transition, except two:

1. All declared variables and arrays need to be specifically zeroed. On the scale of my program, it took me several hours to do it.

2. Constant error of array overrun. I hadn't noticed it on the fourth version. It turned out to be a frequent error.

Otherwise I haven't noticed any difficulties. It just takes a hell of a lot of time to compile the project. I don't even know... This will slow down the engine considerably. :(

 
Реter Konow:

I was always going to do that. Never talked about spreading it out for MT4. )

So far I haven't seen any difficulties with the transition, except two:

1. All declared variables and arrays need to be specifically zeroed. On the scale of my program, it took me several hours to do it.

2. Constant error of array overrun. I hadn't noticed it on the fourth version. It turned out to be a frequent error.

Otherwise I haven't noticed any difficulties. It just takes a hell of a lot of time to compile the project. I don't even know... This will slow down the engine considerably. :(

Didn't you use #property strict in the four?
 
Artyom Trishkin:
You didn't use #property strict in the four?

No.

 
Реter Konow:

No.

It's a real mess.

 
While building a skyscraper alone, you don't think about plastering. When you have finished all the floors, you can do the finishing work.
 
Реter Konow:
While building a skyscraper by yourself, you don't think about plastering. When you have finished all the floors, you can do the finishing work.

This 'plastering' just immediately saves you from having to fix what you've already written.

 
Artyom Trishkin:

This "string" just immediately eliminates the need to fix what's already written.

With#property strict in 4 there were a lot of unnecessary warnings about the fact that the numbers wrapped by defines in keywords and written in the cyber code (constructor code) in the string array Contept "illegally" brought to the string type. Because of this, I disabled this#property strict. That is, in terms of programming rules, my constructor should not exist.)

 
Реter Konow:

With#property strict in 4 there were a lot of unnecessary warnings about the fact that the numbers wrapped by defines in keywords and written in the cyber code (constructor code) in the string array Contept "illegally" brought to the string type. Because of this, I disabled this#property strict. That is, in terms of programming rules, my constructor should not exist.)

What prevented them from being "legally" reduced to string type?

 
Artyom Trishkin:

What prevented them from "legally" being converted to string type?

Let me explain: Working with the constructor is an initialization of an arraystring. In this array, entries of numeric values and strings alternate. Numbers can be coordinates and keywords (and element type names), and strings can be names or text.#property strict requires that everything in this array becast to the type string. However, in this case, the cyber code loses its normal readability. The way out is to work without#property strict.

Example code:
//----------------------------------------------------------------------------------
GROUP, A,

__, V_LINE,"vL",H,61,_,N_COLOR,(int)C'255,223,199',

END_GROUP,
//------------------------------------
 i, AT, _X2X, "R1", 1, _Y2Y, "R1", 1,

An example of what#property strict requires.

//----------------------------------------------------------------------------------
(string)GROUP, (string)A,

(string)__, (string)V_LINE,"vL",(string)H,61,(string)_,(string)N_COLOR,(string)(int)C'255,223,199',

(string)END_GROUP,
//------------------------------------
 (string)i, (string)AT, _(string)X2X, "R1", (string)1, _Y2Y, "R1", (string)1,
 
Sorry, I'm sorting it out.