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

 
A100:

Объявление 

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

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

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

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

Статические указатели и раньше нельзя было использовать. Только раньше ошибка выдавалась при объявлении, а теперь - при инициализации.

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

Хм, что-то я пропустил этот момент. Ну значит вообще без указателей обойтись.
 
A100:

Статические указатели и раньше нельзя было использовать. Только раньше ошибка выдавалась при объявлении, а теперь - при инициализации.

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

Здрастье приехали. Я только что нашел в своем коде несколько строк вида:

static Settings* set;

которые раньше прекрасно компилировались. Теперь нет. 

 
Tron_KZ:
Это пример из документации mql5. Вот ссылка на ту страницу. А ниже этот код.
Спасибо за сообщение, это ошибка компилятора - исправлено.
 

C-4:

... раньше прекрасно компилировались. Теперь нет. 

Спасибо за сообщение, исправлено.
 
В общем решил вопрос кардинально. Удалил все, около 1000, ключевые слова const из стандартной библиотеки. Приложение запустилось нормально, что лишний раз доказывает атавизм данного слова.
 
TheXpert:

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

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

Сервисдеск ответил оперативно. Сказали что действительно ошибка. Уже исправили.
 

Странности функции StringGetCharacter(

Вот код, не выводит ничего. Если открыть Sleep(0) или любой пустой оператор, который не выбросит компилятор, то работает, выводит коды символов.

string  myString="И опыт, сын ошибок трудных"; void OnStart()   {    string word=""; // проходим по всем символам      for(int i=0;i<StringLen(myString);i++)      {

       ushort c=StringGetCharacter(myString,i);       //  Sleep(0);

      if(c>=1040 && c<=1103) Print("Русская буква! Код->",c);      }   }


 
Snaf:

Странности функции StringGetCharacter(

Вот код, не выводит ничего. Если открыть Sleep(0) или любой пустой оператор, который не выбросит компилятор, то работает, выводит коды символов.

Спасибо за сообщение, ошибку исправили.