Ошибки, баги, вопросы - страница 1136

 
C-4:
 Ограничение const накладывает внешняя функция и это ее право, но она не в праве накладывать ограничения на архитектуру сторонних объектов.

Объясните тогда какой смысл Вы вкладываете указывая ниже const - просто чтобы было? 

void f(const A* a) //почему не void f(A* a)
 
A100:

Объясните тогда какой смысл Вы вкладываете указывая ниже const - просто чтобы было? 

Это вопрос к разработчикам стандартной библиотеке а не ко мне.  Что бы использовать Compare к сожалению необходимо его переопределить согласно его сигнатуре, т.е. использовать const. Иначе стандартные алгоритмы поиска, сортировки и вставки работать с моими объектами не будут. Но мои объекты не содежат const и в силу их устройства не могут содежать const. Так спрашивается, почему я не могу использовать стандартные алгоритмы хранения только потому что мне не доступен этот чертов const?!!!!
 
как начать работать в торговом терминале? я понятия просто не имею...
 
C-4:

Конструктор А не статический, попытка его вызвать естественно вызывает ошибку:

Вообще-то это правильная инициализация. Статик в классе не имеет никакого отношения к объекту который статик.

И то что это не компилится действительно на баг похоже.

 

Fleder, спасибо за разъяснение! Ведется ли авторами проекта чейнджлог по MetaEditor'у и языку MQL?

 
Tron_KZ:

Fleder, спасибо за разъяснение! Ведется ли авторами проекта чейнджлог по MetaEditor'у и языку MQL?

Посмотрите здесь.
 
C-4:
 Так спрашивается, почему я не могу использовать стандартные алгоритмы хранения только потому что мне не доступен этот чертов const?!!!!

Объявление 

void f(const A* a)
не означает, что класс A должен иметь только const методы. Оно означает только, что в самой f() могут быть вызваны только const методы
 
TheXpert:

Вообще-то это правильная инициализация. Статик в классе не имеет никакого отношения к объекту который статик.

И то что это не компилится действительно на баг похоже.

Написал в сервисдеск, но хотелось бы более оперативного ответа разработчкиков.
 
A100:

Объявление 

не означает, что класс A должен иметь только const методы. Оно означает только, что в самой f() могут быть вызваны только const методы

Я как бы в курсе. Проблема в том что Compare виртуальный и фактически является МОЕЙ ЛИЧНОЙ функцией сравнения. В СВОЕЙ функции я раньше имел право  использовать не статические методы, теперь меня этой возможности лишили.

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

 
C-4:
Ну как бы есть вариант попросить mutable... Но сомневаюсь что сделают.