class A
{
staticvoidPrint( constint& ) {} // Убрать &, и не будет ругаться.staticvoid Func( void )
{
Print(1); // WARNING: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
}
};
Без & нет однозначности. Сигнатура ::Print неизвестна.
А где аргументы (сигнатура ::Print при которой в этом примере вызывалась бы она, а не A::Print) ?
Мой аргумент - какая бы ни была у ::Print сигнатура - все равно вызывается A::Print, потому что более подходящей (а нужна именно более подходящая, чтобы конфликт возник хотя бы теоретически) - нет
Спасибо за предоставленный код. Ошибка исправлена, исправление войдёт в билд 3107
Отлично! По инлайнингу вопрос остался без ответа.
По ALT+M не совсем верные сигнатуры выдаются.
Это ошибка?
Сейчас нет, но будет ошибкой со временем - о чем и сообщает Warning
Сейчас нет, но будет ошибкой со временем - о чем и сообщает Warning
Имеется в виду ошибочность warning.
Имеется в виду ошибочность warning.
Он предупреждает, что со временем на его месте будет error
Он предупреждает, что со временем на его месте будет error
Мне понятен перевод англоязычного текста. Странной выглядит ситуация с &.
Мне понятен перевод англоязычного текста. Странной выглядит ситуация с &.
А в чем странность? Без & вызывается однозначно A::Print
С & сейчас вызывается ::Print, а (со временем) будет - ошибка
А в чем странность? Без & вызывается однозначно A::Print
Без & нет однозначности. Сигнатура ::Print неизвестна.
С & сейчас вызывается ::Print, а (со временем) будет - ошибка
С & есть однозначность.
Без & нет однозначности. Сигнатура ::Print неизвестна.
А где аргументы (сигнатура ::Print при которой в этом примере вызывалась бы она, а не A::Print) ?
Мой аргумент - какая бы ни была у ::Print сигнатура - все равно вызывается A::Print, потому что более подходящей (а нужна именно более подходящая, чтобы конфликт возник хотя бы теоретически) - нет