Ошибки, баги, вопросы - страница 2419
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
То что вы сказали, мол константа нигде не хранится, а создаётся на лету, то это и означает, что она должна передаваться в виде r-value, а не l-value (в отличие C++). Разницы принципиальной нет, в каком виде оно интерпретируется, главное чтобы можно было её принять в функции.
ну вообще-то r-value ссылка подразумевает наличие объекта для которого будет делаться перемещение. т.е. временный объект все равно надо создавать.
ну вообще-то r-value ссылка подразумевает наличие объекта для которого будет делаться перемещение. т.е. временный объект все равно надо создавать.
Ну понятное дело, объект всегда где-то имеется. Я и написал, что этот объект создаётся на лету, т.е. временный.
Но я кажись понял, что спрашивал Слава. Он имел ввиду, зачем принимать временный объект по ссылке, если можно принять по значению.
Так вот дело в том, что перегружать функцию одновременно для ссылки и для значения невозможно в одном скопе:
что и делает проблематичным написание универсальных решений. А заменив значение на r-value, получим рабочий вариант:
template<typename T> void f(T &&) { } template<typename T> void f(T const&) { }Он имел ввиду, зачем принимать временный объект по ссылке, если можно принять по значению.
потому что
и потому что по ссылке обычно передавать что-то удобнее чем по значению.
а если метод шаблонный (с чего собственно и пошла пьянка) то текущее поведение просто не дает нормально писать.
а если метод шаблонный (с чего собственно и пошла пьянка) то текущее поведение просто не дает нормально писать.
что и делает проблематичным написание универсальных решений. А заменив значение на r-value, получим рабочий вариант:
на самом деле нет )
move семантика предполагает указание перемещаемому объекту, что ему не надо удалять внутренности. если объект константный, потребуется mutable член класса, mql такого не поддерживает
на самом деле нет )
move семантика предполагает указание перемещаемому объекту, что ему не надо удалять внутренности. если объект константный, потребуется mutable член класса, mql такого не поддерживает
Зачем в mql5 move семантика? Тут не нужна такая оптимизация производительности, тем более это виртуалка. Для каких еще целей ее вводить?)
Сам по себе mql5 сильно отличается как от C++, так и от C++98, так и уж тем более от C++11/14/17, но его возможности сейчас полностью покрывают необходимые вещи для создания советника.
но его возможности сейчас полностью покрывают необходимые вещи для создания советника.
Они и 6 лет назад в старом MQL4 покрывали эти необходимости, если вы имеете представление, каков был уровень языка в те времена. Мы писали на нём советники, а некоторые и до сих пор кодят в таком архаическом стиле. Так что всё относительно.
Для каких еще целей ее вводить?)
Тут выдаёт ошибку:
А так не выдаёт:
Так тоже не выдаёт:
В прикрепленном файле скрипт для воспроизведения ошибки, пустой скрипт с парой строк кода что выше.
Ну это совсем не логично:
Класс E не заслуживает такой популярности.
Компилируется без ошибок.