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

 
mktr8591 #:
аналогично - (const A*) конвертируете в A*.
Не вполне понятно, что вы хотите донести до fxsaber. Что именно происходит в коде, он и без вас понимает. Он лишь показывает ситуацию, которой не должно быть. Компилятор должен пресекать подобные преобразования.
 
Sergey Gridnev #:
Не вполне понятно, что вы хотите донести до fxsaber. Что именно происходит в коде, он и без вас понимает. Он лишь показывает ситуацию, которой не должно быть. Компилятор должен пресекать подобные преобразования.
Спорный момент. Без этих преобразований местами возможны большие проблемы. Тем более даже такие запреты компилятора можно обойти - в форуме есть много способов.
 
mktr8591 #:

А строка *2* отлично компилируется и работает. Почему?

список инициализации - единственный легальный (причем специально предусмотренный) способ инициализации нестатических констант.

 
Andrei Trukhanovich #:

список инициализации - единственный легальный (причем специально предусмотренный) способ инициализации нестатических констант.

Так он ей значение поменял потом

 
A100 #:

Так он ей значение поменял потом

Ага, невнимателен. Баг? По идее особенности списка инициализации должны касаться только конструируемого объекта

 
Andrei Trukhanovich #:

Ага, невнимателен. Баг? По идее особенности списка инициализации должны касаться только конструируемого объекта

Баг. Я тоже не сразу понял. Потому и говорю что нужно писать так, чтобы всемподавляющему большинству было понятно. Это и интерфейса касается в том числе

 
A100 #:

Баг. Я тоже не сразу понял. Потому и говорю что нужно писать так, чтобы всемподавляющему большинству было понятно. Это и интерфейса касается в том числе

НАсчет баг репортов - согласен, конечно.

Интерфейс - другая песня. Пример :

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

Сделать сложный интерфейс, понятный  даже для большинства професионалов без изучения документации, Невозможно.

 
Ошибка при компиляции:
class T {};                          //(1)
template<typename T> void f( T* ) {} //(2) Error: 'T' - identifier already used
А если поменять местами:
template<typename T> void f( T* ) {} //(2)
class T {};                          //(1)

то нормально. А какая принципиальная разница?

 
Привет всем! Я недавно стала тренироваться на демо-счёте. Сегодня я открыла: Справка - MQL5веб-терминал. После этого торговая платформа перестала загружаться. А когда загрузилась, оказалось, что мой демо-счёт снесён бесследно со всеми техническими анализами, которые я там тренировала. Надо заводить новый счёт. Почему это случилось? Случается ли подобное с настоящими счетами? 
 
mktr8591 #:

в b3095 запускаю скрипт:

Если убрать перегрузку f1(T* & Ptr), то все 5 вызовов возвращают void f1<const X>(const X*const).

Это какая-то особенность?

Хотел это противоречие в 3 строчки записать, но сразу не получилось

Причина обращения: