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

 
fxsaber:

C++ по какой-то причине приводится, как эталон в данном контексте.

Потому что в Основах языка сказано: MQL5 основан на концепции широко распространенного языка программирования С++...

И кроме того ответ СервисДеска на некоторые мои заявки начинался словами: "Мы проверили поведение представленного кода в Visual C++..."

Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...
 
A100:

На C++ не компилируется пример подобный такому:

потому что это сама по себе ошибка, но fxsaber будет сейчас доказывать что это на самом деле правильно (так было в MQL задумано) и мы чего то не понимаем

Если MQL5 компилирует и выполняет код, который не может скомпилировать C++, то разве правомерна здесь претензия, что MQL5 делает это по ошибке?


Представим язык, который компилирует и выполняет все C++-коды. Более того, он еще компилирует и выполняет некоторые коды, которые C++ не может скомпилировать. Тогда, очевидно, что C++ является подмножеством рассматриваемого языка. Это только логика, без привязки к MQL5, конкретно.

 
A100:

Основной пример на С++ компилируется без ошибок

g++ 5.4.0 не хочет компилить. и покажите плз как называется класс на выходе
 
TheXpert:
g++ 5.4.0 не хочет компилить. и покажите плз как называется класс на выходе


Хотя можно было бы ожидать (по аналогии с), например так:

void f<g<A,int      >::T1>(void)
void f<g<A,double>::T1>(void)

Здесь нужно учесть, что значение __FUNCSIG__ является вспомогательным, поскольку не является частью стандарта и не принимает участие в вычислениях. Главное что выполнение (:16) правильное. Embarcadero C++ даёт такой же результат

 
A100:

не, не сигнатура функции интересует, а класса внутреннего
 
TheXpert:
g++ 5.4.0 не хочет компилить. и покажите плз как называется класс на выходе

а какие флаги включаете?

 
fxsaber:

Если MQL5 компилирует и выполняет код, который не может скомпилировать C++, то разве правомерна здесь претензия, что MQL5 делает это по ошибке?

Не может - потому что находит в них неразрешимые противоречия, которые в MQL возможно были упущены из виду

 
A100:

Не может - потому что находит в них неразрешимые противоречия, которые в MQL были упущены из виду.

Это тоже только логика, без привязки

Говорим о разном. Закончил.

 
TheXpert:
не, не сигнатура функции интересует, а класса внутреннего

Я не знаю как это посмотреть... если кто знает - напишите пожалуйста результат

 
Это нормально?
struct STRUCT { private: int a; };
STRUCT s = {0}; // 's' - cannot be initialized with initializer list