ООП, шаблоны и макросы в mql5, тонкости и приёмы использования - страница 4

 
Alexey Navoykov:
Ну я ведь уже нагородил - и ни капельки не жалею )  А вам, я смотрю, прям доставляет удовольствие сковывать себя искусственными ограничениями, навязанными MQ.  Может вы мазохист? )   Да ещё и так настойчиво пытаетесь убедить меня, что именно так и нужно.  Это не нужно, это вынужденно - вот в чём дело.

На мазохиста больше вы похожи. Вместо того чтобы следовать правилам языка вы потратили время на написание костыля никому не нужного, пытаетесь выдать своё мнение за аксиому, несмотря но то, что не только я вам говорю о ваших ошибках. И плюс ко всему пытаетесь выставить вашу поделку как тонкости и приёмы работы. А тонкостями и особенностями оказывается соблюдение правил описанных в документации.

Предъявите претензии разработчикам разновидностей С языков. Послушайте адрес ссылки куда вы будете посланы. А здесь вы считаете допустимым чего-то требовать от разработчиков взамен собственного невежества.

 
Alexey Viktorov:

На мазохиста больше вы похожи. Вместо того чтобы следовать правилам языка вы потратили время на написание костыля никому не нужного

Полдня, потраченные на написание костыля, окупятся мне в будущей массой сэкономленного времени и нервных клеток, плюс удобством кода (пишу так, как мне требуется) 

пытаетесь выдать своё мнение за аксиому, несмотря но то, что не только я вам говорю о ваших ошибках.

...

Предъявите претензии разработчикам разновидностей С языков.

Ошибках? Вы вообще хоть раз программировали на настоящем языке программирования? Полагаю, что нет. Если вы не в курсе, MQL пишется по подобию языка C++. Так вот в данном случае, разработчики оплошали и не учли некоторые нюансы, из-за чего создали баг, отсутствующий в нормальных языках программирования.

А здесь вы считаете допустимым чего-то требовать от разработчиков взамен собственного невежества.

Вы чего-то опять путаете. Я уже ничего не требую.
 
Alexey Navoykov:

Полдня, потраченные на написание костыля, окупятся мне в будущей массой сэкономленного времени и нервных клеток, плюс удобством кода (пишу так, как мне требуется) 

Ошибках? Вы вообще хоть раз программировали на настоящем языке программирования? Полагаю, что нет. Если вы не в курсе, MQL пишется по подобию языка C++. Так вот в данном случае, разработчики оплошали и не учли некоторые нюансы, из-за чего создали баг, отсутствующий в нормальных языках программирования.

Вы чего-то опять путаете. Я уже ничего не требую.

С какого будуна разработчики mql должны подражать кому-то???

 
Alexey Viktorov:

С какого будуна разработчики mql должны подражать кому-то???

Загляните в документацию, так всё чёрным по белому сказано.
 
Alexey Viktorov:

Предъявите претензии разработчикам разновидностей С языков. Послушайте адрес ссылки куда вы будете посланы. А здесь вы считаете допустимым чего-то требовать от разработчиков взамен собственного невежества.

А при чём здесь семейство Си языков? Такая фигня только в мкл. А всё потому, что мк решили сделать многопроходную компиляцию в угоду тем, кто хочет так

void start() {
    int i = f();
}
int f() {return 0;}

чего делать не стоило.

ЗЫ:

Вообще не раз слышал здесь о том, что с++ это выстрел в ногу, там 70% вообще не используется, мы сделаем удобный и безопасный мкл. Но больше похоже на то, что для комфортного кодописания надо заново изобрести этот "кривой" с++ :)

 
Alexey Navoykov:

Т.е. вы сторонник массового использования глобальных переменных, как я понял.  Тогда мы с вами вряд ли поймём друг друга.

Более того, сама функция может быть шаблонной. И создаваемый экземпляр соответственно должен быть параметризован тем же типом:

Ваши действия?

Не то, чтобы сторонник, но не вижу ничего напряжного в том, чтобы лишний раз объявить экземпляр класса сразу после его описания, даже если он ни для чего кроме удобства использования статик-переменных не нужен. Ну и когда сам недавно столкнулся с этой лажей со статиками внутри функций, просто решил никогда их так не объявлять (внутри функций) и ничего вроде проблем нет.

 
pavlick_:

А всё потому, что мк решили сделать многопроходную компиляцию в угоду тем, кто хочет так

чего делать не стоило.

Я боюсь, он не поймёт, что вы имели ввиду )
 
pavlick_:

А при чём здесь семейство Си языков? Такая фигня только в мкл. А всё потому, что мк решили сделать многопроходную компиляцию в угоду тем, кто хочет так

чего делать не стоило.

ЗЫ:

Вообще не раз слышал здесь о том, что с++ это выстрел в ногу, там 70% вообще не используется, мы сделаем удобный и безопасный мкл. Но больше похоже на то, что для комфортного кодописания надо заново изобрести этот "кривой" с++ :)

То-есть вы говорите, что нельзя инициализировать переменную функцией? Я правильно понимаю?

 
Ilya Malev:

Не то, чтобы сторонник, но не вижу ничего напряжного в том, чтобы лишний раз объявить экземпляр класса сразу после его описания, даже если он ни для чего кроме удобства использования статик-переменных не нужен. Ну и когда сам недавно столкнулся с этой лажей со статиками внутри функций, просто решил никогда их так не объявлять (внутри функций) и ничего вроде проблем нет.

Ну вот я с этого и начинал разговор тут. Планировал тоже заменять все статики на глобалы (хоть это и жесть конечно).  Но как показано выше, с шаблонами такое не прокатит.  С макросами тоже.  А я всё это широко применяю.  Поэтому и сделал свою реализацию.  Хотя она конечно не решает всех проблем.  Динамические массивы по-прежнему нельзя инициализировать, константные типы тоже.  Поэтому их однозначно придётся выносить на глобальный уровень.
 
Alexey Viktorov:

То-есть вы говорите, что нельзя инициализировать переменную функцией? Я правильно понимаю?

Нет, я не об этом. В плюсах static член функции будет проинициализирован при первом входе в функцию. Насчёт многопроходности - поторопился, наивно думал, что мкл разрешит это

int q = w;
int w;
Причина обращения: