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

 
TheXpert:

если на mql по-другому, это неправильно.

Дискуссия не на тему правильно, а о том, что это якобы ошибка. Мое мнение - нет ошибки, такая реализация задумана на данный момент.

 
fxsaber:

Мое мнение - нет ошибки, такая реализация задумана на данный момент.

тогда зачем вы про плюсы спрашиваете? макрос это недошаблон. зачем вообще аналогию между ними проводить?

 
TheXpert:

тогда зачем вы про плюсы спрашиваете?

Любопытство.

макрос это недошаблон. зачем вообще аналогию между ними проводить?

C++ по какой-то причине приводится, как эталон в данном контексте. Почему не укладывается понимание текущей реализации MQL5 - не знаю.

 
TheXpert:

да, такой пример на плюсах не компилится

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

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

class A;
void OnStart()
{
        Print( sizeof( A )); //нормально
}

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

 
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 не хочет компилить. и покажите плз как называется класс на выходе

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