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

 
A100:

Все верно, так и должно быть, иначе какой смысл указывать

а не

Что бы работать со стандартными коллекциями класс не должен обладать константыми методами, потому что не в каждом классе такое возможно, однако каждый класс может использовать стандартные коллекции. Ограничение const накладывает внешняя функция и это ее право, но она не в праве накладывать ограничения на архитектуру сторонних объектов.
 
TheXpert:
A* B::a = new A;

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

'A' - non static methods and members cannot be used.
 
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:

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

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

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