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

 
A100:

Вы получаете не ushort, а "ushort". Разница понятна? Если нет, то читаем документацию до понимания

Так это уже Print() выводит на печать как "ushort" строковым литералом.
При чём тут это? Сам факт, что typename возвращает имя типа!

 
Roman:

Так это уже Print() выводит на печать как "ushort" строковым литералом.
При чём тут это? Сам факт, что typename возвращает имя типа!

Документацию по ссылке прочли? Там и пример есть соответствующий. К сожалению мой пример не удался

 
A100:

Документацию по ссылке прочли?

Причём тут шаблоны?
Если синтаксис использования не для шаблона, в даном случае.

 
Roman:

Причём тут шаблоны?
Если синтаксис использования не для шаблона, в даном случае.

При том что Разработчики поместили описание typename с примером в этот раздел. До конца прочтите и найдете этот абзац и этот пример

 
A100:

А какая разница между (1) и (2) ? Уважаемые разработчики - может быть  Roman прав и теперь typename возвращает тип?

думаю это ближе к макросу

 
A100:

При том что Разработчики поместили описание typename с примером в этот раздел. До конца прочтите и найдете этот абзац и этот пример

Понимаете, что тот раздел документации посвящён шаблонам.
Шаблоны не имеют отношения к данным примерам.
typename это равносильно что получить sizeof

#define  A '+'

void OnStart()
{
   Print(sizeof(A));
   Print(typename(A));
   Print(sizeof("string"));
   Print(typename("string"));
}
2020.10.09 02:20:21.917 TestScript (MNQZ20,M1)  2
2020.10.09 02:20:21.917 TestScript (MNQZ20,M1)  ushort
2020.10.09 02:20:21.917 TestScript (MNQZ20,M1)  12
2020.10.09 02:20:21.917 TestScript (MNQZ20,M1)  string
 
Roman:

Понимаете, что тот раздел документации посвящён шаблонам.
Шаблоны не имеют отношения к данным примерам.
typename это равносильно что получить sizeof

В документации сказано: Для создания универсальных способов работы с различными типами данных необходимо использовать ключевое слово typename для получения типа аргумента в виде строки.

Где в этом предложении есть слово шаблон? Не вижу? Да... пример с шаблоном. А что Разработчики там Вам должны были примеры на все случаи жизни привести что-ли?

 
A100:

В документации сказано: Для создания универсальных способов работы с различными типами данных необходимо использовать ключевое слово typename для получения типа аргумента в виде строки.

Где в этом предложении есть слово шаблон? Не вижу? Да... пример с шаблоном. А что Разработчики там Вам должны были примеры на все случаи жизни привести что-ли?

В данном случае, мы не чего не создаём, мы получаем из типов их имена.
Да отвежитесь вы от шаблонов. И документации для шаблона.
Вы результат принта видите? Что ещё нужно?
Честно, не пойму вашего непонимания.

 
Roman:

В данном случае, мы не чего не создаём, мы получаем из типов их имена.
Да отвежитесь вы от шаблонов. И документации для шаблона.
Вы результат принта видите? Что ещё нужно?

А результат этого принта Вы видите?

void OnStart()
{
    Print("ushort");
}

Результат: ushort

Так что теперь: "ushort" это тип такой? И такая запись по Вашему нормальна?

void OnStart()
{
    "ushort" ch = '+';
}
Нет это не тип, это строка. Print типы не печатает - в PrintFormat нет такого формата. Строки, числа, символы - печатает, а типы - нет
 
A100:

А результат этого принта Вы видите?

Результат: ushort

Так что теперь: "ushort" это тип такой? И такая запись по Вашему нормальна?

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

Вы в принт передали строковый литерал, его и получили.
Чтобы получить имя типа, используется ключевое слово typename("ushort")
получите имя типа string

Предадите сам тип  typename(string), получите тоже самое.

Вообще это косяк документации, что не описывает работу с ключевым словом typename.
Для sizeof есть описание, а для typename только для шаблонов.
Хотя выше я привёл пример, что typename получает имя типа, равносильно как sizeof получает размер.