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

 
fxsaber:

Ее не будет после компиляции.

Будет. Просто в общем случае ошибка при компиляции переместится в ошибку при выполнении:

void f( const int  ) { Print( 1 ); }
#define int short
//...
void f( const int  ) { Print( 2 ); }
void f( const int& ) { Print( 3 ); }
void OnStart()
{                     //Результат:
          int i = 0; f( i   );  //2
    const int j = 0; f( j+0 );  //1
}

Результат:               2:1

А в моем варианте: 2:2

void OnStart()
{                     //Результат:
          int i = 0; f( i   );  //2
    const int j = 0; f((int)j); //2
}
 
A100:

Будет. Просто в общем случае ошибка при компиляции переместится в ошибку при выполнении:

Результат:               2:1

Результат в исходнике перепутали. Не думаю, что есть сложение при выполнении. Прочто компилятор прописывает вызывает int-вую функцию для выражения. А само выражение не вычисляет.

 

Подумывал реализовать аналог итератора под С++. Но возникла печалька....


Вопрос разработчикам:
Перезагрузка какого из унарных операторов, разрешенных в MQL, предлагается в качестве best practice для реализации операции разыменования?

  • unary +,-,++,--,!,~
 
Sergey Dzyublik:

Перезагрузка какого из унарных операторов, разрешенных в MQL, предлагается в качестве best practice для реализации операции разыменования?

  • unary +,-,++,--,!,~

Офигеть, здесь на форуме есть люди которые задумываются о best practice.

Логичнее всего выглядит сдвиг, за неимением. (сорри, он параметра требует, тогда дополнение как самый редко используемый) Но получится ли нормально хоть с одним?

Максимум что можно получить это так:

(~w).F();

Придется всегда брать в скобки из-за приоритета точки.

 
Sergey Dzyublik:

Вопрос разработчикам:
Перезагрузка какого из унарных операторов, разрешенных в MQL, предлагается в качестве best practice для реализации операции разыменования?

  • unary +,-,++,--,!,~

а что хоть разыменовывать можно в MQL ? - тут даже указатели на обьекты уже разыменованы при обращении по имени указателя

ЗЫ: Вашу бы энергию да в нужное русло.... в прошлом месяце в очередной стопервый раз пытался сделать обертку класс для двухмерного массива, сколько не бился так и не получилось перегрузить [] , чтобы обращаться как к нормальному двухмерному массиву arr[1][2]  , а Вы тут про разыменование указателей в MQL...

 
Igor Makanu:

сколько не бился так и не получилось перегрузить [] , чтобы обращаться как к нормальному двухмерному массиву arr[1][2]  , а Вы тут про разыменование указателей в MQL...

бывает ))

 
Igor Makanu:

в очередной стопервый раз пытался сделать обертку класс для двухмерного массива, сколько не бился так и не получилось перегрузить [] , чтобы обращаться как к нормальному двухмерному массиву arr[1][2]  

Такую задачу решали 4-5 год назад, была отдельная ветка с готовыми решениями.
Из активных участников до сегодня мало кто дожил, в основном перебанили...

П.с там был не двухмерный, а трех и более мерный массив на классах.

 
О, кажись, нашел ту ветку https://www.mql5.com/ru/forum/6729
В MQL5 всегда есть место подвигу ! ;)
В MQL5 всегда есть место подвигу ! ;)
  • 2012.05.16
  • www.mql5.com
Общее обсуждение: В MQL5 всегда есть место подвигу ! ;)
 
Sergey Dzyublik:

Такую задачу решали 4-5 год назад, была отдельная ветка с готовыми решениями.
Из активных участников до сегодня мало кто дожил, в основном перебанили...

П.с там был не двухмерный, а трех и более мерный массив на классах.

Ну ведь пошёл, поглядел эту ветку - нет ни одного ни забаненного, ни удалённого аккаунта. Все люди  из той ветки есть, и здравствуют.

Это вы скандальчик так закатить решили, набросив на администрацию? Ну глупо же. Прекращайте видеть зло вокруг.

 
Sergey Dzyublik:
О, кажись, нашел ту ветку https://www.mql5.com/ru/forum/6729

кажется я читал в прошлом месяце этот топик, вечером еще раз гляну

но мои эксперименты с перегрузкой [][]  закончились пониманием, что можно что то одно реализовать в  MQL  или L-value или R-value с помощью перегрузки [][] 

если у Вас есть готовое решение для работы с динамическим двухмерным массивом - выложите в CodeBase , это полезная вещь - я искал не нашел ничего лучше CMatrixDouble из поставки МТ: #include Math Alglib