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

 

syntax error

struct S {};
class A {
        int S() { return 1; }
        int f() { return S(); } //syntax error, если нет уточнения A::S() //а обязательно ли оно ???
};
а так:
struct S {};
class A {
        void S() {}
        void f() { S(); }
};
нормально, значит компилятор понимает что подразумевается A::S() и это не обязательно явно указывать
 

Уважаемые знатоки, как в пользовательском индикаторе МА (прикрепил) реализовать функцию "Применить к: ..." ?

что бы было как в стандартном индикаторе Moving Average - "Применить к: First Indikator's Data".

Задавал этот вопрос на форумах, никто не знает или говорит, что в MQL данной возможности для реализации нет.

И сразу вопрос к разработчикам - почему коды встроенных стандартных индикаторов закрытые и их нельзя модифицировать?

Файлы:
MAchannel.mq4  7 kb
 
Ошибка компиляции: constant cannot be modified
class A {};
class B { public:
        const A *a; //здесь не - const A * const a
};
class C { public:
        B b;
        void f( const A *aa ) { this.b.a = aa; } //'a' - constant cannot be modified
};

нельзя присвоить указатель указателю, если последний объявлен как (const A *) и является членом члена класса

а если просто членом класса, то нормально

class A {};
class C { public:
        const A *a;
        void f( const A *aa ) { this.a = aa; } //нормально
};
 
Ошибка выполнения
#define PRN             Print( __FUNCSIG__ )
class A { public:
        A()       { PRN; }
        void F1() { PRN; }
        void g()  { F1(); PRN; } //здесь пропускает вызов A::F1()
};
class F1 { public:
        F1()     { PRN; }
        ~F1()    { PRN; }
};
void OnStart()
{
        A a;
        a.g();
}
 

Дополню предыдущее сообщение достаточно редким случаем явного вызова конструктора

#define PRN             Print( __FUNCSIG__ )
class A { public:
        A()       { PRN; }
        void g()  { F1::F1(); PRN; } //ошибка компиляции в то время как С++ вызывает безымянные конструктор и деструктор как если бы было ниже
        void f()  { F1 f1;    PRN; } //нормально
};
class F1 { public:
        F1()     { PRN; }
        ~F1()    { PRN; }
};
void OnStart()
{
        A a;
        a.g();
        a.f();
}
 
Желательно добавить возможность появления пробелов и табуляции между # и define, ifdef, ifndef, endif, else, undef
#ifdef MACRO
#       define MACRO1
#else
#       define MACRO2
#endif
Если сложные условия, то читать с отступами значительно удобнее
 

После #define иногда возможны комментарии

#define /*MICRO*/SOFT //ошибка компиляции
 
A100:

После #define иногда возможны комментарии

Спасибо за обращение, разберемся
 

У значков существенно четкость пропала

Было  build 1060

Стало build 1100

Нужно ли увеличивать размеры в ущерб четкости?

 
A100:

У значков существенно четкость пропала

Было  build 1060

Стало build 1100

Какой у вас экран ? Какое разрешение ? В настройках размер текста в % сколько выставлен  ?
Причина обращения: