Проблема с указателем

 
Вроде бы простой код, но вот ошибка, почему-то:


const char *cstr = ""; // <- Указатель не может быть использован!
 
extream:
Вроде бы простой код, но вот ошибка, почему-то:


Я далёк от этого, но не стал-бы писать "" а написал бы NULL

 
Alexey Viktorov #:
Я далёк от этого, но не стал-бы писать "" а написал бы NULL
 нет проблема в конструкции 
const char *cstr;

а не в инициализации.

компилятор пишет: '*' - pointer cannot be used
 
Alexey Viktorov #:

Я далёк от этого, но не стал-бы писать "" а написал бы NULL

Не поможет.

extream:
Вроде бы простой код, но вот ошибка, почему-то:

Почему Вы решили, что целочисленный тип char - это объект класса?

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как...
 
Artyom Trishkin #:

Не поможет.

Почему Вы решили, что целочисленный тип char - это объект класса?

Тем не менее вот один из конструкторов класса string:

string(const char *cstr = "");

и тут все корректно

 
extream #:

Тем не менее вот один из конструкторов класса string:

и тут все корректно

это может быть фокус MQL :-) 

пока функция/метод не задействованы (то есть нет нигде вызова этого конструктора), они детально не валидируются.

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

 
Что фокус, то видимо, да. А вот, то что это работает в незадействованных методах, то не похоже, т.к. пишу аналогичный конструктор в своем классе и ошибка остается. Видимо у string-а, что-то накостылено с препроцессором. Ладно, забъем на него, главный вопрос в том, что есть ли в MQL способ передачи анонима строки (без переменной)?
 
Указатели есть только на пользовательские классы.