Ошибки, баги, вопросы - страница 2272
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Одна только создается. Более того, в f Вы не сможете использовать T.
Более того, в f Вы не сможете использовать T. В общем, ситуация очевидная для меня.
Более того, нарушил Ваш запрет на использование T в f
Как видите компилируется без ошибок, а то что результат абсурдный - не важно главное что все "объяснимо"
Какой сакральный смысл в этом коде,зачем его вообще впихнули в стандартную библиотеку?
Теперь невозможно юзать функции закрытия позиций или ордеров из стандартной библиотеки в ОнДеинит , например при REASON_REMOVE
Какой сакральный смысл в этом коде,зачем его вообще впихнули в стандартную библиотеку?
Теперь невозможно юзать функции закрытия позиций или ордеров из стандартной библиотеки в ОнДеинит , например при 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".