Ошибки, баги, вопросы - страница 1794

 
Комбинатор:
почему?

Там есть стринги (два штука).

Разработчики еще могли бы сделать подобное рабочим решением для MqlTradeResult, если бы

struct MqlTradeResult
  {
   uint     retcode;          // Код результата операции
   ulong    deal;             // Тикет сделки, если она совершена
   ulong    order;            // Тикет ордера, если он выставлен
   double   volume;           // Объем сделки, подтверждённый брокером
   double   price;            // Цена в сделке, подтверждённая брокером
   double   bid;              // Текущая рыночная цена предложения (цены реквота)
   double   ask;              // Текущая рыночная цена спроса (цены реквота)
   string   comment;          // Комментарий брокера к операции (по умолчанию заполняется расшифровкой кода возврата торгового сервера)
   uint     request_id;       // Идентификатор запроса, устанавливается терминалом при отправке  
   uint     retcode_external; // Код ответа внешней торговой системы
  };

поле-строку сделали бы последним. Но для MqlTradeRequest даже такое не помогло бы.

 
fxsaber:

Там есть стринги (два штука).

Да, что-то не подумал
 

fxsaber:

Результат

STRUCT::~STRUCT
STRUCT::~STRUCT
STRUCT::~STRUCT
Почему три раза, а не два?
Почти всегда один вызов будет лишним ... здесь подробности https://www.mql5.com/ru/forum/1111/page1657#comment_2729876
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • www.mql5.com
Форум алго-трейдеров MQL5
 
A100:
Почти всегда один вызов будет лишним ... здесь подробности https://www.mql5.com/ru/forum/1111/page1657#comment_2729876
Т.е. это не баг, а результат ключа C++ компилятора, который разработчики используют?
 
безfxsaber:
Т.е. это не баг, а результат ключа C++ компилятора, который разработчики используют?

Это стандартное поведение, которое в подавляющем большинстве случаев можно оптимизировать без ущерба и еще не оптимизировано

int i = 1 + 2; //стандартное поведение: вычислять i при выполнении
               //оптимизация: сразу присвоить 3
 
1530 - что там?
 
A100:

Это стандартное поведение, которое в подавляющем большинстве случаев можно оптимизировать без ущерба и еще не оптимизировано

int i = 1 + 2; //стандартное поведение: вычислять i при выполнении
               //оптимизация: сразу присвоить 3
Оптимизация - это хорошо, спасибо. Но если все честно выполнять, то откуда берутся три шага?
 
fxsaber:
Оптимизация - это хорошо, спасибо. Но если все честно выполнять, то откуда берутся три шага?

Сообщите в СервисДеск

struct S {
        S()  { Print( __FUNCTION__ ); }
        ~S() { Print( __FUNCTION__ ); }
};
S f()
{
        S s;
        return s;
}
void OnStart() //2 раза  
{
        f();
}

так 2 раза вызов (а что поменялось? - появился конструктор), 

я предположил, что компилятор в том Вашем примере дополняет код так

void OnStart() //3 раза 
{
        S s = f(); //s при этом - не используется

}

 

 
A100:

Сообщите в СервисДеск

Написал.

так 2 раза вызов (а что поменялось? - появился конструктор), 

Загадочный MQL...
 

Нужно ли писать в СД, если на одном из серверов при успешном открытии позиции маркет-ордером каждый раз получается нулевой Result.deal?

Не уверен, что это ошибка, т.к., возможно, это так сам сервер настроен. Тем более, все равно из Result.order всегда можно получить Result.deal.

Причина обращения: