Скачать MetaTrader 5

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

Artyom Trishkin
Модератор
97707
Artyom Trishkin  
A100:

Я обращал внимание на это https://www.mql5.com/ru/forum/1111/page1297#comment_1382986

Но менять ничего не стали, поэтому ::EnumToString в шаблонах во многих случаях бесполезен

Привет от fxsaber:

// Для enum-ов
template <typename T>
string EnumToString2( T Value ) { return(EnumToString(Value)); }
 
// Для кастомных типов
template <typename T>
string EnumToString2( const T& ) { return(NULL); }
 
 
// Для стандартных типов
#define ENUMTOSTRING(A) string EnumToString2( A ) { return(NULL); }
  ENUMTOSTRING(int)
  ENUMTOSTRING(string)
// .....
#undef ENUMTOSTRING
 
#define EnumToString EnumToString2
 
template<typename T>
string ETS( T t ) { return ( typename( t ) == "int" ? "OK" : ::EnumToString( t ) ); }
enum ENUM {     ENUM__ };
 
void OnStart()
{
        ENUM i1 = ENUM__;       Print( ETS( i1 )); //нормально
        int  i2 = 0;            Print( ETS( i2 )); //"ошибка компиляции"
        string i3 = NULL;       Print( ETS( i3 )); //"ошибка компиляции"
}
Vladimir
801
Vladimir  
Комбинатор:

так взятие элемента по индексу у простого массива должно быть очень быстрой операцией, разве нет?

Но невзятие еще быстрее. Как-то заметил, что если вместо целых использовать числа с плавающей точкой, моя программа работает раза в полтора быстрее. Для себя объяснил это тем, что сопроцессор FPU у меня по большей часть простаивал. В основном использовал целые числа. В рассматриваемом случае тоже можно принять это во внимание: SQRT выполняется в FPU, у АЛУ освобождается время, они начинают работать в значительной степени параллельно.
MetaQuotes
Админ
26252
Renat Fatkhullin  
Vladimir Pastushak:

Продолжаем осваивать проекты и натыкаемся на 

#resource "\\Experts\\[Project 2018]\\Expert Name\\Resources\\img\\open_buy.bmp"

resource name is too long '\Experts\[Project 2018]\Expert Name\Resources\img\open_buy.bmp' CPanel.mqh 6 1

Зачем нужны проекты если мы ограничены ?

Проект это ПРОЕКТ!!!!! в котором может быть 1000 картинок, звуков, справок файлов и Мы должны все свалить в одну папку ?

Я не любитель винегрета в каталогах, что бы писать много качественно должен быть порядок не только в голове но и везде...

Частично поправим для обьектов, включаемых на этапе компиляции и не попадающие в код как именованный обьект.

Дело в том, что внутри EX файла заложено физическое ограничение на именованные ресурсы в 64 символа.
A100
5075
A100  
Artyom Trishkin:

Привет от fxsaber:

Приведенный код основан на недоработке компилятора

void f(       int  ) { Print( 1 ); } //(1)
void f( const int& ) { Print( 2 ); } //(2)
void OnStart()
{
    int i = 0;
    f( i ); //нормально ???
}

Результат: 1... а почему не 2 ?

При том что С++ сообщает при компиляции об ошибке, поскольку очевидно подходят обе функции и кроме того существующий сейчас в MQL порядок вообще не позволяет явно вызвать функцию (2)

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

A100
5075
A100  

Ошибка при компиляции: tree optimization error

class A {
public:
    void f() {}
};
typedef A* (*fn)();
#import "Test.ex5"
    fn g();
#import
void OnStart() { g()().f(); }
Vladimir Pastushak
101063
Vladimir Pastushak  
Renat Fatkhullin:
Частично поправим для обьектов, включаемых на этапе компиляции и не попадающие в код как именованный обьект.

Дело в том, что внутри EX файла заложено физическое ограничение на именованные ресурсы в 64 символа.

Очень не хватает места в описании продуктов.

3600 символов это крайне мало для больших и серьезных программ.

Я думаю что многие со мной согласятся.

Для описания программ нужно не меньше 5000 - 10000 символов. Ну или на крайний вкладка с именем настройки программы

Модератор всегда может попросить убрать воду.

Вот сейчас пишу описание программы, использовал все 3600 символов только на описание настроек а даже половину возможностей не описал...
Andrey Khatimlianskii
60677
Andrey Khatimlianskii  
Vladimir Pastushak:

Очень не хватает места в описании продуктов.

3600 символов это крайне мало для больших и серьезных программ.

Я думаю что многие со мной согласятся.

Для описания программ нужно не меньше 5000 - 10000 символов. Ну или на крайний вкладка с именем настройки программы

Модератор всегда может попросить убрать воду.

Вот сейчас пишу описание программы, использовал все 3600 символов только на описание настроек а даже половину возможностей не описал...

Владимир, вы когда-нибудь что-нибудь покупали? Сколько времени тратили на чтение инструкции?

Никто не будет читать многотомный талмуд, даже видео длиннее 3-5 минут смотреть не будут.
Выход один — делать подсказки в интерфейсе программы, как это делается сейчас почти везде. Что-то вроде интерактивного ознакомления. А подробную инструкцию для продвинутых пользователей можно выложить в блоге или у себя на сайте. Кто захочет — найдет и скачает.

Nikolai Semko
3693
Nikolai Semko  
Vladimir Pastushak:

Очень не хватает места в описании продуктов.

3600 символов это крайне мало для больших и серьезных программ.

Я думаю что многие со мной согласятся.

Для описания программ нужно не меньше 5000 - 10000 символов. Ну или на крайний вкладка с именем настройки программы

Модератор всегда может попросить убрать воду.

Вот сейчас пишу описание программы, использовал все 3600 символов только на описание настроек а даже половину возможностей не описал...

Я не согласен. Краткость сестра таланта.

"Не думайте, что в многословии своем будете услышаны."

Мф. 6:7

Vladimir Pastushak
101063
Vladimir Pastushak  
Andrey Khatimlianskii:

Владимир, вы когда-нибудь что-нибудь покупали? Сколько времени тратили на чтение инструкции?

Никто не будет читать многотомный талмуд, даже видео длиннее 3-5 минут смотреть не будут.
Выход один — делать подсказки в интерфейсе программы, как это делается сейчас почти везде. Что-то вроде интерактивного ознакомления. А подробную инструкцию для продвинутых пользователей можно выложить в блоге или у себя на сайте. Кто захочет — найдет и скачает.

Те кто не читают и не покупают, много ли Вы купили товаров не понимая для чего товар ?

Может тогда все публиковать в блогах ?

Vladimir Pastushak
101063
Vladimir Pastushak  
Nikolai Semko:

Я не согласен. Краткость сестра таланта.

"Не думайте, что в многословии своем будете услышаны."

Мф. 6:7

Согласен, но даже кратко 3600 это мало...