Новая версия платформы MetaTrader 5 build 5260: улучшения в Algo Forge, расширение OpenBLAS и новые правила наследования в MQL5 - страница 11

 
Maxim Kuznetsov #:

что поменять в коде (конструкторов добавить, или ещё класс прокладку) чтобы не было 

Компилируется без ошибок - b5283.

 
fxsaber #:

Компилируется без ошибок - b5283.

компилироваться то компилируется...падает в рантайме с invalid pointer access (место отмечено в коде)

 

ещё прикол, слово Tan нельзя использовать :-)

class Tan {
public:
   Tan() {
   }
   void Hello() {
      Print("Hello");
   }
};
void OnStart()
{
   Tan t;
   t.Hello();
}

'Tan' - name expected

Это что, какое-то ругательное слово на каком-то языке ?

PS/ Sin, Cos, Tg можно использовать



 
Maxim Kuznetsov #:

ещё прикол, слово Tan нельзя использовать :-)

        Print(Tan);

// clrTan

https://www.mql5.com/ru/docs/constants/objectconstants/webcolors
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Набор Web-цветов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Набор Web-цветов
  • www.mql5.com
Для типа color определены следующие цветовые константы: Задавать цвет можно для объектов с помощью функции ObjectSetInteger() и для...
 

то есть в трейдерских программах не может быть класса "Gold" , потому-что есть такой цвет ?

это близко к окончательному успеху платформы  :-)

 
Maxim Kuznetsov #:

то есть в трейдерских программах не может быть класса "Gold" , потому-что есть такой цвет ?

это близко к окончательному успеху платформы  :-)

\MQL4\Indicators\Accelerator.mq4:

#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red

Для совместимости оставили - раньше цвета были без "clr".

#define Tan {}
#define Red {}
built-in macro 'Tan' redefinition
built-in macro 'Red' redefinition

 

Кнопка "Смещение графика" перестало работать.

2025.09.24 19:27:15.225 Terminal        MetaTrader 5 x64 build 5291 started for MetaQuotes Ltd.
2025.09.24 19:27:15.225 Terminal        Windows 10 build 19045, 16 x Intel Xeon  E5-2630 v3 @ 2.40GHz, AVX2, 8 / 15 Gb memory, 9 / 189 Gb disk, RDP, admin, GMT+3
 
Maxim Kuznetsov #:

компилироваться то компилируется...падает в рантайме с invalid pointer access (место отмечено в коде)

Потому что до этого был вызван уничтожающий деструктор.

// holder - contain copy, route methods to it
class Holder: public Base {
public:
   Base *m_hold;
public:
   Holder(Base &b):Base() {
      m_hold=b.clone();
   }
   ~Holder() {
      delete m_hold;
   }
 
fxsaber #:

Потому что до этого был вызван уничтожающий деструктор.

а есть идеи как этого избежать ?

PS/ при том что непонятно почему деструктор вызвался раньше, чем из (него, временного) объекта скопированы данные.

 
Maxim Kuznetsov #:

а есть идеи как этого избежать ?

Я не вникал в конструкцию. И точно никогда не писал такое.