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

 
fxsaber:

И не должен, хотя бы из-за неоднозначности

В исходном примере не было такой неоднозначности... вы ее сами создали... и ею же все объяснили
 
fxsaber:

И не должен, хотя бы из-за неоднозначности

В оригинале typedef это alias для типа, а не другой тип, поэтому  на самом деле большой вопрос к разработчикам почему в названии типа выводится не тип а его алиас.
 

Ошибка при компиляции

struct A {
                void f() {}
        static  void f( int ) {}
};
template<typename T>
void g( T ) {}
void f( int ) {}
typedef void (*fn)( int );
void OnStart()
{
        g(  (fn)   f ); //(1) нормально
        g(  (fn)A::f ); //(2) error: '(void(*fn)(int))' - cannot resolve function address
        fn ff = A::f;
        g( ff        ); //(3) нормально
}

Если (1) нормально, то почему ошибка в (2) если (3) нормально??? 
 
Комбинатор:
В оригинале typedef это alias для типа, а не другой тип, поэтому  на самом деле большой вопрос к разработчикам почему в названии типа выводится не тип а его алиас.

Соглашусь.

 

A100:

template<typename T>
string typeof( T ) { return typename T; }

Просьба пояснить typeof. Поиском не нашел нормального объяснения не для опытных программеров.

 
Во время одиночного прогона и визуализации логи заполняются тысячами записей такого рода
2017.08.16 20:26:06.477 2017.08.01 10:04:06   order modified [#253 buy limit 1.00 EURUSD at 1.18159]
2017.08.16 20:26:06.477 2017.08.01 10:04:06   order modified [#253 buy limit 1.00 EURUSD at 1.18159]
2017.08.16 20:26:06.477 2017.08.01 10:04:06   order modified [#253 buy limit 1.00 EURUSD at 1.18159]
2017.08.16 20:26:06.477 2017.08.01 10:04:06   order modified [#253 buy limit 1.00 EURUSD at 1.18159]
2017.08.16 20:26:06.477 2017.08.01 10:04:06   order modified [#253 buy limit 1.00 EURUSD at 1.18159]
2017.08.16 20:26:06.477 2017.08.01 10:04:06   take profit triggered #251 sell 1.00 EURUSD 1.18166 tp: 1.18159 [#254 buy 1.00 EURUSD at 1.18159]
2017.08.16 20:26:06.477 2017.08.01 10:04:06   deal #251 buy 1.00 EURUSD at 1.18159 done (based on order #254)
2017.08.16 20:26:06.477 2017.08.01 10:04:06   deal performed [#251 buy 1.00 EURUSD at 1.18159]
2017.08.16 20:26:06.477 2017.08.01 10:04:06   order performed buy 1.00 at 1.18159 [#254 buy 1.00 EURUSD at 1.18159]
2017.08.16 20:26:06.477 2017.08.01 10:04:06   order [#253 buy limit 1.00 EURUSD at 1.18159] triggered

И приходится ждать долгие секунды, пока они выведутся. А мне в логе интересны только распринтовка в журнал, что делаю сам в OnDeinit. Зачем навязывать каждый раз эти логи, которые читаются в ОЧЕНЬ редких случаях? Тем более есть же отдельный пункт Меню просмотра журналов Агентов. Да и отстутствие этих логов при той же Оптимизации никого не заставляют чувствовать себя неполноценно. Так зачем эта навязчивость в сотни мегабайт (особенно, если какой-нибудь дурной советник на каждом тике пытается открыть сделку, получая Unsuppoted filled mode)?!

Мухи от котлет возможно отделить в тестере? Чтобы, как в терминале: лог для принтов из самого эксперта и лог терминала. Надоело долгие секунды ждать, пока эти десятки тысяч ненужных сообщений в логах на каждый Order-пук пройдут и можно будет увидеть последние строчки завершения бэктеста.

Давно на самом деле наболело. Возможно, не одного меня раздражает.

 
fxsaber:
...

Давно на самом деле наболело. Возможно, не одного меня раздражает.


Да, не одного Вас. )

 
fxsaber:

Просьба пояснить typeof. Поиском не нашел нормального объяснения не для опытных программеров.

Эти строки удалил (случайно попали).

У вас https://www.mql5.com/ru/forum/1111/page1983#comment_5616331 аналогичная запись такого вида

template<typename T>
void g( T Value ) { Print(typename(Value)); }
  Несущественное отличие: отсутствует Value, поскольку оно избыточно
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.08.16
  • www.mql5.com
Форум алго-трейдеров MQL5
 
typedef void (*fn)();
void f() {}
void OnStart()
{
        fn ff = f;                   //Результат:
        Print( "1:", typename( ff )); //void(*fn)()
        Print( "2:", typename( f  )); //пусто
}
Пусто... а почему?
 

Поиск в файлах: искомая строка: 'A\t\tB A'

Пропуск символов табуляции в результирующей фразе: Поиск 'AB A' в папке 'W:'

На результаты поиска не влияет, но может вызывать путаницу.



Поиск - Инструменты - Пользовательский интерфейс - Справка по MetaEditor
Поиск - Инструменты - Пользовательский интерфейс - Справка по MetaEditor
  • www.metatrader5.com
В данном окне отображаются результаты глобального поиска и поиска в файлах. Информация представляется в виде таблицы со следующими полями...