Как видно, оператор+ не был заменён склейкой во втором случае (создалось для литерала с последующим run time сложением). Компиятор просто не может вырезать его из-за слишком больших возможностей у программиста, это сильно ограничивает возможности для оптимизации. Это не МКЛ, конечно, в нём может всё иначе, но само утверждение: "нормальный компилятор всё сделает за меня" - ошибочно.
pavlick_: Это не МКЛ, конечно, в нём может всё иначе, но само утверждение: "нормальный компилятор всё сделает за меня" - ошибочно.
Ну раз нет таких операторов в MQL, то и возможностей, связанных с ними, логично не иметь. Насчет компиляторов спорить не буду, т.к. ни разу не программист. Знаю немного только MQL.
Заколебался уже выкидывать в трубу время и деньги: оптимизатор зависает на последнем проходе. Агенты ничего не делают, все на стадии Authorized. В журнале тишина. Включать/отключать агентов бессмысленно, после повторного запуска оптимизации все начинается с нуля.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Не работает:
string s = AZ(rty);
И не должен. Плюсик добавьте.
В С/С++ должно. Более того, в мкл вот так работает:
В С/С++ должно. Более того, в мкл вот так работает:
А для чего такая запись - без плюса? Удобство? - сомнительно.
Никто же не пишет так
А для чего такая запись - без плюса? Удобство? - сомнительно.
Никто же не пишет так
Хотя бы потому, что с оператором + вы получите run time операцию вместо compile time.
Всем Привет!
Вопрос к многоуважаемым Разработчикам и Знатокам.
Я поискал на форуме но так и не нашёл ответа,прошу не пинать.
А что, в окне наблюдения за выражениями нельзя изменять значения переменных в процессе отладки?
Можно только калькулировать и всё?
Весьма признателен за ответ.
Всем Привет!
Вопрос к многоуважаемым Разработчикам и Знатокам.
Я поискал на форуме но так и не нашёл ответа,прошу не пинать.
А что, в окне наблюдения за выражениями нельзя изменять значения переменных в процессе отладки?
Можно только калькулировать и всё?
Весьма признателен за ответ.
Такое возможно только в тупом компиляторе. Сами же все понимаете.
using namespace std;
struct S
{
S operator +(const S&) {cout << "operator +\n"; return S{};}
};
S operator ""_s(const char*, size_t) {cout << "literal operator\n"; return S{};}
int main()
{
cout << "___literal concatenation example___\n";
S s = "sd"_s "sf"_s;
cout << "___operator+ example___\n";
S s2 = "sd"_s + "sf"_s;
}
___literal concatenation example___
literal operator
___operator+ example___
literal operator
literal operator
operator +
Как видно, оператор+ не был заменён склейкой во втором случае (создалось для литерала с последующим run time сложением). Компиятор просто не может вырезать его из-за слишком больших возможностей у программиста, это сильно ограничивает возможности для оптимизации. Это не МКЛ, конечно, в нём может всё иначе, но само утверждение: "нормальный компилятор всё сделает за меня" - ошибочно.Это не МКЛ, конечно, в нём может всё иначе, но само утверждение: "нормальный компилятор всё сделает за меня" - ошибочно.
Заколебался уже выкидывать в трубу время и деньги: оптимизатор зависает на последнем проходе. Агенты ничего не делают, все на стадии Authorized. В журнале тишина. Включать/отключать агентов бессмысленно, после повторного запуска оптимизации все начинается с нуля.
Кто сталкивался? Как бороться?