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

 
Почему текущий день не тестируется? Мой собственный советник прекрасно тестируется на мт4 в текущий день.
 
В одном случае есть ошибка при компиляции, а в другом нет:
class T {};          //(1)
template<typename T> //(2)//Error: 'T' - identifier already used
void f() {}
template<typename T> //(2)//нормально
void f() {} 
class T {};          //(1)

А какая принципиальная разница в каком порядке идут (1) и (2) ?

 
Ошибка при компиляции:
#define delete(X)    delete X
class A {} *a = new A;
void OnStart()
{
    delete( a ); //(1)//нормально
    delete  a  ; //(2)//Error: argument expected for the function-like macro 'delete'
}

MQL путает макрос и оператор

 

FileIsExist () предназначен только для проверки существования файла? Раньше это работало и для проверки существования папки, а теперь нет.

Вот такой код:

void OnStart()
{
  string manager  = "Manager\\";

  if (FileIsExist (manager + "0", FILE_COMMON)) Print ("Папка уже существует");
  else
  {
    Print ("Создадим папку");
    Print (FolderCreate (manager + "0", FILE_COMMON));
  }
}

выдаёт следующий результат после трёх запусков:

Создадим папку
true
Создадим папку
true
Создадим папку
true

По логам понимаю, что FileIsExist () не видит ранее созданную папку.

 
Andrey Dik #:

FileIsExist () предназначен только для проверки существования файла? Раньше это работало и для проверки существования папки, а теперь нет.

Вот такой код:

выдаёт следующий результат после трёх запусков:

Создадим папку
true
Создадим папку
true
Создадим папку
true

По логам понимаю, что FileIsExist () не видит ранее созданную папку.

Так в справке же написано, что если это директория, то функция вернёт false, и нужно по коду ошибки определять, что это папка. У тебя и возвращается false.
 
A100 #:
Ошибка при компиляции:

MQL путает макрос и оператор

Не вижу ошибки. В примере везде после строки определения макроса слово delete - макрос. И только макрос.

 
Artyom Trishkin #:
FileIsExist

Да, действительно.

Посмотрел в своих старых кодах и раньше это работало года 3 назад, не обратил внимания, что я делал ещё проверку на ошибку 5018, которая как раз и говорила что это папка.

Отбой.

 
fxsaber #:

Не вижу ошибки. В примере везде после строки определения макроса слово delete - макрос. И только макрос.

Макрос определен в параметрической форме - соответственно скобки - это неотъемлимая его часть. А без скобок - это и не макрос вовсе. Вот подобный, работающий на MQL пример:

int x() { return 1; }
int x =          2;
void OnStart()
{
    Print( x() ); //x со скобками - функция   //нормально
    Print( x   ); //x без скобок - переменная //нормально
}
Соответственно:
#define delete(X)    delete X
class A {} *a = new A;
void OnStart()
{
    delete( a ); //(1)//delete со скобками - макрос  //нормально
    delete  a  ; //(2)//delete без скобок - оператор //Error: argument expected for the function-like macro 'delete'
}
 
Неделю назад создал ветку, но не получил ни единого ответа. Скопирую сюда.

Зашел на сайт с классического firefox, но попытка залогиниться с браузера Palemoon (портативный браузер, разновидность firefox) или Comodo IceDragon (также портативный, на базе firefox 65.0.2) - получаю ошибку "Неверный логин или пароль". С чем это может быть связано? С другими сайтами таких проблем не было.
 
ЗДРАВСТВ КАКУЙТЕ ПОДСКАЖИТЕ ПОЖАЙЛУСТО КАК ВОСТАНОВИТЬ СВОЙ АКАУНТ ЕСЛИ НЕТ ДОСТУПА К СТАРОЙ ПОЧТЕ НЕ ПОРОЛЯ НЕ ЛОГИНА НЕ ПОМНЮ НАЗВАНИЕ ПОЧТЫ ТОЛЬКО ОСТАЛОСЬ