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

 
A100:

Вы опять не в теме - разницы нет никакой. В обоих случаях: или ошибки не должно быть - или должна быть (как в C++). Вот пример (3), когда f переопределена после, как и в случае (2), однако в отличии от (2) - ошибка при компиляции

извиняюсь, не ваш уровень. но более строгая и не разумная инкапсуляция на мой взгляд. не си  и не питон.

 
Объединим все в одном примере:
class B {
public:
        B( int ) {}
};
class A {
        int f( int ) { return 0; }
        void g1()    { B f = f( 1 );  } //(1) нормально
        void g2()    { B f(  f( 1 )); } //(2) Error: '1' - some operator expected
};
Теперь вообще ВСЕ одинаково, а вопрос тот же: Какая разница между (1) и (2) ?
 
A100:
Объединим все в одном примере: Теперь вообще ВСЕ одинаково, а вопрос тот же: Какая разница между (1) и (2) ?

Я вооще не понимаю о чём вы говорите, но разница ОЧЕВИДНАЯ ))) Присваивание -> аргумент. Может я и не прав )))

 
Сергей Таболин:

Я вооще не понимаю о чём вы говорите, но разница ОЧЕВИДНАЯ ))) Присваивание -> аргумент. Может я и не прав )))

Если для Вас разница очевидна, то объясните почему в одном случае ошибка при компиляции, а в другом - нет. Или Вы разницу только по внешнему виду можете определить, а не по смыслу!? Тогда это уровень журнала Мурзилка - "найдите 10 отличий"

 
A100:

Если для Вас разница очевидна, то объясните почему в одном случае ошибка при компиляции, а в другом - нет. Или Вы разницу только по внешнему виду можете определить, а не по смыслу!? Тогда это уровень журнала Мурзилка - "найдите 10 отличий"

Именно так )))))))

И можно ещё один вопрос от профана? Зачем вот всё это нужно? В чём сакраментальный смысл? Вот Вы специально выискиваете такие "баги"? Или без какой-то из этих конструкций - вся жизнь насмарку?

 
Сергей Таболин:

И можно ещё один вопрос от профана? Зачем вот всё это нужно? В чём сакраментальный смысл? Вот Вы специально выискиваете такие "баги"? Или без какой-то из этих конструкций - вся жизнь насмарку?

За такие вопросы (в этой ветке) пора бы уже банить

 

Раз уж тут про ошибки. Есть какое-то решение на тему DLL и ручной остановки тестера?

В смысле, если тестер/оптимизацию остановить в процессе, то чтоб по-новой, приходится убивать ручками metatester64 (а в случае фермы - там  дополнительная порция ада), потому что процесс оставляет  DLL загруженной, а для запуска нового теста он в сэндбокс копирует DLL по-новой, но, очевидно, винда не дает перезаписать открытую DLL и ошибка записи.

Ну и если тут разработчики пробегают, отчего бы не добавить в код тестера 4 линии, чтобы он попытался handle библиотеки получить,  и если она загружена - выгрузить, прежде чем копировать по-новой? Бардак же ;)

 

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

нугуглил 

SELECT datetime('now');

но хотелось бы в один запрос к БД отправлять 

хочу интересующие проходы оптимизации в БД писать, очень не хватает локального времени - забываю когда какие параметры ЕА  исследовал

UPD:

Нагулил решение, достаточно datetime() в тестовое поле записывать

INSERT INTO "tst"("Field1") VALUES (datetime('now','localtime'));
 
Igor Makanu:

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

нугуглил 

но хотелось бы в один запрос к БД отправлять 

хочу интересующие проходы оптимизации в БД писать, очень не хватает локального времени - забываю когда какие параметры ЕА  исследовал

UPD:

Нагулил решение, достаточно datetime() в тестовое поле записывать

CREATE TABLE "foo" (

   "stamp" datetime default CURRENT_TIMESTAMP,

    --- прочие поля

);

по идее должно прокатывать - stamp будет выставляться при создании записи в текущее локальное время.

 
A100:
Объединим все в одном примере: Теперь вообще ВСЕ одинаково, а вопрос тот же: Какая разница между (1) и (2) ?

Ну это очевидно что проблема скорее всего в одинаковости названий с функцией - это оценка на внешний вид, так сказать предвкушая особенности языка))) Ну так то должно работать такое..... представляю найти такую ошибку в тонне кода.

Проверил - да все верно,. компилятор пытается второй раз вызвать не функцию а конструктор внутри конструктора.

Во втором варианте получается что компилятор зачем то резервирует синтакс "f(" - именно как на "функцию" вызова конструктора 

class B {
public:
        B( int ) {}
};
class A {
        int f( int ) { return 0; }
        void g1()    { B f = f( 1 );  } //(1) нормально
        void g2()    { B f(  this.f( 1 )); } //(2) Прекрасно работает
};


Хотя это не точно)))   но...

Скорее даже так в ожидании обратной скобки класса на синтакс "f("... он встречает её у функции f(....) и закрывает её как класс(т.е. в нашем случае там происходит полная инициализация объекта B, вместо вызова функции)... потом уже решает оставшийся сегмент пытаясь конвертировать класс в переменую

походу Ваш код он пытается понять как


class B {
public:
        B( int ) {}
};
class A {
        int f( int ) { return 0; }
        void g1()    { B f = f( 1 );  } //(1) нормально
        void g2()    { B a(1);  B f (a(1)); } //(2) Error: '1' - some operator expected
};
Быстрое погружение в MQL5
Быстрое погружение в MQL5
  • www.mql5.com
Есть множество причин, по которым вы решили изучать современный язык программирования торговых стратегий MQL5, и мы только приветствуем это! Старожилы легко ориентируются как в самой документации по языку, так и в статьях и множестве сервисов, которые здесь представлены. Но если вы только открыли для себя клиентский терминал MetaTrader 5, то в...
Причина обращения: