Ошибки, баги, вопросы - страница 2272
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Какой сакральный смысл в этом коде,зачем его вообще впихнули в стандартную библиотеку?
Теперь невозможно юзать функции закрытия позиций или ордеров из стандартной библиотеки в ОнДеинит , например при REASON_REMOVE
Да, это косяк.
Более того, нарушил Ваш запрет на использование T в f
Как видите компилируется без ошибок, а то что результат абсурдный - не важно главное что все "объяснимо"
Вы не совсем понимаете, что такое шаблоны. А они сродни макросам, только с некоторыми фишками.
Вот такой код
выдаст
Потому что T - это подстава, как в макросах, только с некоторыми оговорками. По итогу имеем, что создается сигнатура. Внутри функции никто не знает про A, которое подставляется вместо T в функции. Но Вы определяете этот A внутри, поэтому дальше ошибки компиляции не происходит. Вставил MqlTick вовнутрь, чтобы показать, что этот A - никакого отношения не имеет к другим одноименным классам.
Короче, внутрифункциональные классы в MQL5 не видны вне родительской функции. В качестве T передается только название типа, как класса. При этом в названии нет упоминания функции-родителя.
Т.е. все довольно логично объяснимо. Это не ошибка, а такая ограниченная реализация.
ЗЫ Наверное, на собеседовании C++-программер скажет, что такое невозможно
MQL5 - вполне.
Вы не совсем понимаете, что такое шаблоны.
ЗЫ Наверное, на собеседовании C++-программер скажет, что такое невозможно
Если Вы считаете что на C++ такое невозможно - то это значит что не я, а Вы не понимаете что такое шаблоны и как они работают... тем более что не можете отличить небрежную реализацию от ограниченной
Если Вы считаете что на C++ такое невозможно - то это значит что не я, а Вы не понимаете что такое шаблоны и как они работают... тем более что не можете отличить небрежную реализацию от ограниченной
Прочтите первое слово предложения, на которое даете свой комментарий. Мои представления о шаблонах и макросах в MQL5 таковы, что без попыток компиляции осознаю, что Ваши примеры компилироваться на MQL5 не будут. С++ - не знаю, что не мешает.
ЗЫ Был бы благодарен, если бы показали реакцию C++ на этот код
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2018.09.03 07:16
ЗЫ Наверное, на собеседовании C++-программер скажет, что такое невозможно
ЗЫ Был бы благодарен, если бы показали реакцию C++ на этот код
Вы не совсем понимаете, что такое шаблоны. А они сродни макросам, только с некоторыми фишками.
да, такой пример на плюсах не компилится
но даже если бы он компилился, результат бы вас удивил, потому что имя класса было бы просто "T".
если на mql по-другому, это неправильно.
Дискуссия не на тему правильно, а о том, что это якобы ошибка. Мое мнение - нет ошибки, такая реализация задумана на данный момент.
Мое мнение - нет ошибки, такая реализация задумана на данный момент.
тогда зачем вы про плюсы спрашиваете? макрос это недошаблон. зачем вообще аналогию между ними проводить?
тогда зачем вы про плюсы спрашиваете?
Любопытство.
макрос это недошаблон. зачем вообще аналогию между ними проводить?
C++ по какой-то причине приводится, как эталон в данном контексте. Почему не укладывается понимание текущей реализации MQL5 - не знаю.
да, такой пример на плюсах не компилится
Основной пример на С++ компилируется без ошибок
На C++ не компилируется пример подобный такому:
потому что это сама по себе ошибка, но fxsaber будет сейчас доказывать что это на самом деле правильно (так было в MQL задумано) и мы чего то не понимаем