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

 
Roman:

))) вы меня удивляете

Вы в принт передали строковый литерал, его и получили.

Так и Вы передали в принт строковый литерал

void OnStart()
{
    Print(typename('+'));
}

Результат: ushort

Если Вы думаете по другому после всех объяснений и изучения документации, то это Ваши проблемы:

void OnStart()
{
    Print(short); //Error - потому что принт типы не печатает
}
 
A100:

Так и Вы передали в принт строковый литерал

Результат: ushort

Если Вы думаете по другому после всех объяснений и прочтения документации, то это Ваши проблемы

А я разве утверждал, что возвращается строка ? 
Это вы зацепились за string и Print()
А на выходе будет не строковый литерал, а символьный целочисленный тип ushort.
В общем тоже, не мои проблемы в вашем познании.

 
Roman:

А на выходе будет не строковый литерал, а символьный целочисленный тип ushort.

На выходе будет именно строковый литерал. Вот - нашел прямое доказательство - тут принта вообще нет:

int f()
{
    return typename('+'); //warning: implicit conversion from 'string' to 'number'
}
А теперь попробуйте доказать обратное - тоже без принта! Естественно доказать примером, а не фантазиями на тему: "в документации написано не то - я лучше знаю"
 
A100:

На выходе будет именно строковый литерал. Вот доказательство тут принта вообще нет:

Я не верю компиляторному предупреждению!

'+'  это не string ! Это символьный тип, в mql ushort 2 байта

Точка.

Скорее это ошибка в описании предупреждения.

 
Roman:

Я не верю компиляторному предупреждению!
' '  это не string ! это символьный тип!

Скорее это ошибка в описании предупреждения.

Это не вопрос веры и предположений - нужны доказательства: пример без принта доказывающий, что typename возвращает не строковый литерал есть ? Когда будет - продолжим

 
A100:

Это не вопрос веры и предположений - нужны доказательства: пример без принта доказывающий, что возвращается не строковый литерал есть ? Когда будет - продолжим

Хотя typename возвращает же имя, по этому и возвращает как string
возможно и так, но это то какая разница? 
Получили имя типа и получили. не пойму, что вы хотите мне доказать?
Что typename возвращает тип string, ну логично, он же имя возвращает.
Я имел ввиду что возвращается имя типа, то есть буковками написан тип ))
Я вообще не думал, в каком именно типе он возвращается, а вы зацепились за это.
В общем холивар не о чём.
 
Roman:
Хотя typename возвращает же имя, по этому и возвращает как string
возможно и так, но это то какая разница? 

Похоже, что стадия отрицания у Вас прошла... начинается стадия осознания. Не буду Вам мешать

 
A100:

Похоже, что стадия отрицания у Вас прошла... начинается стадия осознания. Не буду Вам мешать

Ещё раз повторю, я не утверждал, что возвращается сам тип, я утверждал что возвращается ИМЯ типа.
Какого типа возвращается ИМЯ, я вообще не думал об этом в нашей беседе.
По этому стадия осознания тут не причём, и так понятно что имя это строка, если она string.
Но есть же ещё mql ushort, будь он не ладен, по этому тут я засомневался, что в typename будут запихивать 12 байтный string.
Если бы возвращался сам тип, то это вообще улёт был бы ))
На лету можно было бы определять переменные ))
Не знаю возможно ли такое в скомпилированной программе, по сути обычное выделение памяти.

 
A100:

Это в абстрактных языках, а у MQL с абстрактностью не сложилось - якобы это нельзя совместить со скоростью

Вот ещё вариант проверить, 12 байт как положено типу string

Print(sizeof(typename()));
 
Roman:

Вот ещё вариант проверить, 12 байт как положено типу string

Тем более, значит в Документации все правильно было написано (но это тоже косвенное доказательство)