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

 
A100:

Если принять обращение к функциям-членам только через (*a), то это не даст явных преимуществ, а наоборот - приведет к невозможности простого и понятного множественного применения операторов.

попробуйте переписать это с учетом Вашего предложения

А вместо указателя использовать сам объект нельзя, поскольку operator <<(...) может вернуть только указатель на объект.

Вы вероятно не правильно меня поняли.  Я же не говорил о том, чтобы запретить текущую реализацию.  Я просил сделать дополнительную возможность взятия ссылки либо указателя на объект, дабы не зависеть от прихотей компилятора.  А как поступать в каждом конкретном случае - уже сам решу.  Если мне потребуется сверхнадёжная программа, то вполне можно сделать и так, как вы описали.  Да, замороченно. Но зато если потом метаквотсы вдруг введут специальное действие оператора << для указателей, то нам это уже не страшно.

 
meat:

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

Если (b) - объект, то дополнительная возможность (&b) в дополнении к существующей GetPointer( b ) понятна - это приближение синтаксиса к С++.

Если (a) - указатель, то дополнительная возможность (*a) в дополнении к существующей (a) дает наверное разумный компромис

class A {
        bool operator==(A *);
        A *operator<<(A *);
        A *operator>>(A *);
};

void f()
{
        A *a = new A();
        if (  a ==  a ); //сравнение указателей
        if ( *a == *a ); //вызов operator==(A *)
        a << a >> a;     //вызов operator<<(A *) и operator>>(A *)
        *a << *a;        //вызов operator<<(A *)
}
С одной стороны устраняется противоречие, с другой - не нарушается существующий порядок
 

Компилятор допускает одноименные переменные в параметрах и теле функции в пределах одной области видимости

int f( int a )
{
        int a = 10;
        return ( a );
}

void OnStart()
{
        Print( f( 5 )); //Результат: 10, а должен был - выдать ошибку при компиляции
}
Хотя предупреждение и выдается, оно недостаточно для такой трудноуловимой ошибки (в большом коде). По крайней мере С++ компилятор в аналогичном случае выдает именно ошибку
 

Возможно следствием предыдущей ошибки является то, что такая конструкция

class A {
public:
        A( int a ) {}
};

void g( int a ) { Print( a ); }

int f( int a )
{
        A a( 15 );
        g( uint( a ));
        return ( 8 );
}

void OnStart()
{
        Print( f( 5 ));
}
Приводит к ошибке при выполнении: Invalid EX5 file (8)
 
Столкнулся с проблемой работы функции "MarketBookGet". Работает не стабильно .т.е. может работать без проблем, а может не работать вовсе, т.е. возвращает false.
Кто сталкивался с этим? Как решается и в чем проблема? Брокер "Открытие". 
 
Когда цена отложенника переносится drag'n'drop-ом на новый уровень, вместе с ней меняется и SL/TP. Можно ли это как-то отключить? Не всегда следует двигать SL/TP синхронно с ценой.
 
marketeer:
Когда цена отложенника переносится drag'n'drop-ом на новый уровень, вместе с ней меняется и SL/TP. Можно ли это как-то отключить? Не всегда следует двигать SL/TP синхронно с ценой.

Как Вы это видите? Я например так:

Если зажать клавишу Ctrl, то отложенный ордер будет передвигаться вместе с SL/TP. Если без Ctrl, то так, как сейчас.

Ещё нужно учесть, что в настройках терминала можно установить управление торговыми уровнями только при зажатой клавиши Alt. Тогда для описанного выше взаимодействия, нужно зажимать Ctrl+Alt.

 
tol64:

Как Вы это видите? Я например так:

Если зажать клавишу Ctrl, то отложенный ордер будет передвигаться вместе с SL/TP. Если без Ctrl, то так, как сейчас.

Ещё нужно учесть, что в настройках терминала можно установить управление торговыми уровнями только при зажатой клавиши Alt. Тогда для описанного выше взаимодействия, нужно зажимать Ctrl+Alt.

Это из документации? Про Alt я читал и им пользуюсь, про Ctrl - нет.
 
marketeer:
Это из документации? Про Alt я читал и им пользуюсь, про Ctrl - нет.
Это я придумал, как бы могло быть. Один из вариантов. Можно разработчикам в Сервисдеск предложить. Может сделают. ))
 
marketeer:
Когда цена отложенника переносится drag'n'drop-ом на новый уровень, вместе с ней меняется и SL/TP. Можно ли это как-то отключить? Не всегда следует двигать SL/TP синхронно с ценой.
Если допустим это можно было бы отключить, тогда непонятно что делать, если цена-линия при движении пересечет неподвижные уровни SL и/или TP