Новая версия платформы MetaTrader 5 build 3091: Улучшения в работе - страница 21

 
A100 #:

А где аргументы (сигнатура ::Print при которой в этом примере вызывалась бы она, а не A::Print) ?

void f( const int& ) {}

void OnStart()
{
  f(1); // '1' - parameter passed as reference, variable expected
}
 
A100 #:
Нужен пример подобный этому без &
void f( const int ) {}

class A
{
  static void f( const long ) {}

  static void Func( void )
  {    
    f(1); // deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
  }
};
 
fxsaber #:

1 - это int, а не long. И где здесь неоднозначность?

Вызывается f<int>. А в перспективе будет вызываться f<long> о чем предупреждение косвенно и сообщает

 
A100 #:

1 - это int, а не long. И где здесь неоднозначность?

Там же, где это.

void f( const int ) {}

class A
{
  static void f( int ) {}

  static void Func( void )
  {    
    f(1);
  }
};

Не понимаю увод темы в сторону, когда изначально показана ошибка.

 
fxsaber #:

Там же, где это.

Не понимаю увод темы в сторону, когда изначально показана ошибка.

Ни там (в первоначальном варианте) ни здесь - нет никаких ошибок.

Здесь тоже все однозначно - вызывается A::f, по той простой причине, что она A:: (член класса)

 
A100 #:

Видимо, не понимаете, что такое передача по ссылке.

 
fxsaber #:

Видимо, не понимаете, что такое передача по ссылке.

Тоже самое могу Вам сказать

 
A100 #:

Тоже самое могу Вам сказать

И добавлю: Вы уже сами запутались в попытке найти несуществующую ошибку - пишете

а в следующих сообщениях про ссылку

Без & нет никакой передачи по ссылке
 
A100 #:

Без & нет никакой передачи по ссылке

Хронология нашего диалога не имеет никакого отношения к наличию ошибки.

void f( const int )  {}

class A
{
  static void f( const int& ) {}

  static void Func( void )
  {    
    // По сигнатурам очевидно, что A::f не может быть вызван, т.к. передача не по ссылке. Поэтому предупреждение ошибочное.
    f(1); // WARNING: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
  }
};