Errors, bugs, questions - page 2639

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Is the portable mode key required by any chance?
Do all terminals start manually?
By hand, yes, they all do. In the end, that's how I started them manually.
The portable mode key doesn't change anything in this regard.
The thing is, MT4 throws up an authorization window and the program start is not considered completed.
You have to use "start" in the batch file.
All in all, it turns out I've got this one figured out.
Thank you for your participation!
You still don't understand what this is about, you probably don't read my posts carefully. My appeal is to the developers, not you. I don't need your cheap advice.
Calm down and do not worry so much.
Once again I am convinced that people with low brain development usually have little understanding of civility.
You can not even understand what you are told by more knowledgeable people, and you are as rude as a kindergarten child who has not even learned to write correctly.
However, it's the work on the projects that allows you to assess the language's capabilities and discover its defects and bugs...
Previously, when working on MQL projects, the information about defects (bugs) was provided in the order of their detection.
Now we have decided to try a new approach - work up to a blocking defect and then provide information about all detected defects.
You create a complex wrapped object with internal type "C" several times, but it turns out to be quite a different data type, maybe "B", "int", whatever you want...
I spent a lot of time and effort to find and understand that the problem is not in the code but in the MQL compiler. (C++ online:https://onlinegdb.com/H1R1fR5ML)
Presumably, the problem is in the work of the template class "main_wrapper" cache during code generation at compilation time when the internal class "internal_wrapper" from the template class "A" is passed as a parameter for different data types (int, B*, B, C).
What first data type is created by the template class "main_wrapper<A<TEMPLATE_TYPE>::internal_wrapper>, such data type will be further used in all objects of the template in the future.
Another bug with the generation of the template class code will be provided below.
Another MT5(build 2316) bug with template class code generation when using internal class.
C++ online:https://onlinegdb.com/HJkKXAqMU
AnotherMT5(build 2316) defect related to theinternal class is the lack of ability to explicitly reference the global namespace.
C++ online:https://onlinegdb.com/H14NF05G8
A very nasty bug that blocks further development.
You create a complex wrapped object with internal type "C" several times, but it turns out to be quite a different data type, maybe "B", "int", whatever you want...
It took me a lot of time and effort to find and understand that the problem is not in the code but in the MQL compiler. (C++ online:https://onlinegdb.com/H1R1fR5ML)
Presumably, the problem is in the work of the template class "main_wrapper" cache during code generation at compilation time when the internal class "internal_wrapper" from the template class "A" is passed as a parameter for different data types (int, B*, B, C).
What first data type is created by the template class "main_wrapper<A<TEMPLATE_TYPE>::internal_wrapper>, such data type will be further used in all objects of the template in the future.
Another bug with the generation of the template class code will be provided below.
Is this the right way to do it?
Thank you, indeed introducing a dummy template parameter, in the case of the example, bypasses the problem.
However, as for the global project, it's a bit more complicated:the internal class was applied as an alternative to the missing typedef typename functionality in order to simplify both the development process and the application of the final container class.
It may be worth waiting for a fix from the developers.
As a last resort, all dependencies will have to be dragged outward, hoping for no further successful compilation with undefined behavior at runtime.
To summarize the internal class functionality,
we can clearly say that it lacks typedef declaration functionality, at least its primitive form, to use it properly...
So, instead of quite compact and comprehensible C++ code:
We have to build a fence with #define and inheritance through internal class:
Problems when using internal class as typedef declaration:And there are much more problems here than it may seem at first sight.
Problems occur when using #define as a typedef declaration:
For this purpose, the developers added "operator= delete".
However, it doesn't seem logical to break the delete/default link, because everything needs to be written manually again.
Maybe I'm doing something wrong?