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

 
fxsaber:

В справке сказано что: Если начальные значения не указаны, то переменные статического класса памяти принимают нулевые начальные значения. И кроме того - без template то все нормально

 
A100:

В справке сказано что: Если начальные значения не указаны, то переменные статического класса памяти принимают нулевые начальные значения

В случае с шаблонами примерно представляю откуда ноги растут, отсюда понимание, что не во всех ситуациях возможно просто добавить template-строку.

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

 
fxsaber:

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

В документации есть и прямо противоположная запись: "Статический член класса требуется явно инициализировать нужным значением". Только template на это никак не влияет - соответственно ошибка либо должна либо не должна генерироваться в обоих случаях (с template и без него) - в этом и заключается противоречие
 
MetaTrader 5 build 1619 started (MetaQuotes Software Corp.)
Microsoft Windows XP (X86 based PC), IE 08.00, Intel Core2 Duo  T7700 @ 2.40GHz, RAM: 2359 / 3581 Mb, HDD: 17612 / 27784 Mb, GMT+02:00
C:\Program Files\MetaTrader 5

MetaEditor после обновления больше не запускается, выдавая такую ошибку


1616 работал нормально, 1619 - нет.

В журнале терминале после нажатия F4

2017.07.07 12:00:30.109 Error   MetaEditor not found
2017.07.07 12:39:54.296 Error   MetaEditor not found
 
A100:

Не совсем понимаю смысл Вашего ИМХО. Возьмите build <= 1596 (32bit) и проверьте (выводит в .log файл сразу [5-10 секунд] даже одну строку). Я проверял минуту назад

[какой кеш? какое всегда? где-то что то было о чем то!?!]

речь о вкладке Эксперты и Папке MQL5\Logs\ 

ИМХО было написано из врожденной деликатности - это тонкий намек на несовпадение наших опытов. Для меня 5-10 секунд - это никак не сразу. И эта задержка по моим наблюдениями не всегда ограничивается секундами.

[Кеш - это кеш, всегда - это всё время до сего момента, на форуме уже обсуждался вопрос отложенной записи логов - если это Вам реально важно - поищите]

 
Stanislav Korotky:

Для меня 5-10 секунд - это никак не сразу. И эта задержка по моим наблюдениями не всегда ограничивается секундами.

Было 5-10 секунд (может в отдельных случаях и больше), а теперь без меню Просмотр - логи ВООБЩЕ (!) не обновляются (с начала суток прошло уже несколько часов, а файл - нулевой, при том что во вкладке Эксперты есть новые строки за сутки).  Нарушено нормальное логирование ради мифического ускорения работы терминала на "пару наносекунд"
 

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

struct A {
        A() {}
        int aa;
};
struct B {
        static A a;
};
A B::a;
template<typename T>
struct C {
        static T a;
};
template<typename T>
T C::a;
void OnStart()
{
        B    x1;
        Print( x1.a.aa ); //нормально
        C<A> x2;
        Print( x2.a.aa ); //unresolved static variable 'C<A>::a'
}
Похоже на предыдущий случай https://www.mql5.com/ru/forum/1111/page1943#comment_5410554 но здесь нельзя скрыть ошибку путем указания T C::a = 0; //отсутствует A::A( int )
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.07.06
  • www.mql5.com
Форум алго-трейдеров MQL5
 

Ошибка при выполнении

void OnStart()
{
        string text = "1234\0";
        Print(  "1>'",    text, "'" ); //не выводит завершающую кавычку
        printf( "2>'%s'", text );      //нормально
}

Результат:

1>'1234
2>'1234'

 

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

#define MACRO( x )      Print( x )
void OnStart()
{
        MACRO/**/( 10 ); //error: '' - argument expected for the function-like macro
}
 

Ожидалось наоборот

class A {};
struct B {
        const A *       a1;   //(1) есть сообщение об ошибке
              A * const a2;   //(2) нет сообщения
};
void OnStart()
{
        B b1;
        B b2;
        b2 = b1; //error: '=' - not allowed for objects with protected members or inheritance
}
  1. Если в struct B присутствует только строка (1) - есть сообщение об ошибке
  2. Если в struct B присутствует  только строка (2) - нет сообщения
  3. Ожидалось наоборот

Далее не ожидалась ошибка в обоих случаях (1. и 2.)

void OnStart()
{
        B b1;
        B b2 = b1; //error: '=' - not allowed for objects with protected members or inheritance
}
Причина обращения: