Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Лично я могу только догадываться, что у Вас там произошло. Предоставьте заявку в Сервисдеск, тогда точнее скажут. Ваше сообщение не менее туманно для меня.
Я в принципе о том чтобы компилятор анализировал код на возможные ошибки при перегрузке.
К примеру вот так правильно (все нормально работает)
А так не правильно (верней может работать, а может и нет, в зависимости от условий вызова)
Тут происходит кализия, при которой в одом случае (при компиляции модуля) компилятор не видит (следовательно не находит ошибок), а при вызове функций явыным образом говорит что есть ошибка.
При этом в справке явным образом не говориться что подабная ошибка может возникнуть если один из параметров предопределен и теоретически может быть упущен.
Хотя если рассматривать второй вариант из "неправильных" то я к примеру понять не могу почему ситуация приводит к ошибке (верней могу, но у меня вопросы возникают).
Рассмотрим оба "неправильных" варианта.
Тут по логике вещей если не определять параметры явно должна вызываться функция
color ColorBackground();
При этом подразумевается что определяется цвет текущего графика
Даже если мы явно указываем параметр, компилятор не может определиться какую функцию я хочу в итоге вызвать (как я понимаю поскольку компилятор не разбирается в том передается в функцию тип color или long). таким образом вот такой вызов становится для него ошибочным (поскольку компилятор не видит различия в параметрах)
В данной ситуации компилятор успешно осуществляет вызов только если все параметры указаны явно, т.е. в том случае если происходит смена цвета на определенном чарте
PS
Да ладно, бог с этой ошибкой (ну или не ошибкой). лучше обратите внимание на мою заявку в сервисдеске #23172 и вот это обсуждение...
Я в принципе о том чтобы компилятор анализировал код на возможные ошибки при перегрузке.
Напишите в Сервисдеск, я не могу по кускам кода понять ничего. Может кто из форумян поймет, у меня не получается разгадывать головоломки. Неужели так сложно предоставить полный код? Здесь лучше уже не выкладывать, и так много ни о чем написано.
Ладно, будет заявка в сервисдеск. Но кажется итак все ясно объяснил - Пишем класс, на подобии того что имеется в стандартной библиотеки. В классе есть перегружаемые функции, некоторые из параметров которых охота сделать дефаултными (чтобы не указывать их постоянно без надобности).
Если без дефаултных параметров то все ОК, но в нашем случае хочется иметь предупреждение на этапе создания класса, а не ошибку при вызове его функционала...
PS
Заявка оформлена. Красиво получилось, прошу разработчиков обратить внимание за заявки #23172 и #24172 (первая на мой взгляд имеет больший интерес и приоритет)...
Напишите в Сервисдеск, я не могу по кускам кода понять ничего. Может кто из форумян поймет, у меня не получается разгадывать головоломки. Неужели так сложно предоставить полный код? Здесь лучше уже не выкладывать, и так много ни о чем написано.
Я так понял, из разъяснений Рената и по логике вещей, что компилятор на этапе компиляции перегружаемых методов класса с дефолтными параметрами не предупреждает о возможной неоднозначности, а выдаёт ошибку только при вызове этих неоднозначных методов.
Interesting:
Если без дефаултных параметров то все ОК, но в нашем случае хочется иметь предупреждение на этапе создания класса, а не ошибку при вызове его функционала...
Получилось "масло маслянное"...
Я так понял, из разъяснений Рената и по логике вещей, что компилятор на этапе компиляции перегружаемых методов класса с дефолтными параметрами не предупреждает о возможной неоднозначности, а выдаёт ошибку только при вызове этих неоднозначных методов.
Компилятор работает абсолютно верно.
Он не может ругаться в указанном случае, ибо в прототипах все нормально - разное количество параметров (пусть даже некоторые из них заполнены умолчаниями). Если будут использоваться перегруженные методы с полным набором параметров, то все скомпилируется без ошибок.
Компилятор абсолютно правильно сообщает о невозможности точно подобрать нужную функцию при вызове с не полностью заполненным списком параметров, где под вызов подходят две или более функции.
Почему две потенциальные функции на вызов? Потому что кто-то совершенно не думал, когда описывал второй параметр умолчательно.
Последние пару дней терминал отрубается при открытии окна тестера. В чем может быть проблема? Как раз 15.12 был новый билд, может из-за него? До сих пор работало все нормально. Перегружал и переустанавливал несколько раз, безуспешно.
Time : 2010.12.18 19:46 (0:02:18)
Program : Client Terminal
Version : 500.370 (15 Dec 2010)
Revision : 27654
OS : Windows 7 Professional (Build 7600)
Processors : 4 x X86 (level 6)
Memory : 1833392/795584 kb
Virtual : 2097024/1800948 kb
CrashMD5 : 3911FA0C9824ADAF76FA3234759FC4B7
Exception : C0000005 at 772820CB write to 5F6F0001
Modules : 00400000 00955000 terminal.exe (5.0.0.370)
: 16080000 00019000 mdnsnsp.dll (1.0.3.1)
: 69A70000 00008000 pshook.dll (3.1.1.72)
77281FA1:0012A [772820CB] RtlIdentifierAuthoritySid (ntdll.dll)
7728A44C:001AB [7728A5F7] RtlCopyString (ntdll.dll)
Registers : EAX=5F6F0001 EIP=772820CB EFLGS=00010206 ES=0023
: EBX=F1100200 ESP=0012D93C EBP=0012D970 FS=003b
: ECX=000221DB ESI=05DD17C3 CS=001b GS=0000
: EDX=00000002 EDI=F1100000 DS=0023 SS=0023
Аналогичная ситуация описана здесь: https://www.mql5.com/ru/forum/1111/page239
В сервисдеске новая заявка с 15 декабря висит.... ни одного ответа не было...
Это в связи с серьёзной загрузкой или барахлит что?
В сервисдеске новая заявка с 15 декабря висит.... ни одного ответа не было...
Это в связи с серьёзной загрузкой или барахлит что?
Ваша заявка не пропала даром. Она есть и ее видели.
Ответ Вы получите в ближайшее время.