Применять с осторожностью

{: #unsafe}}

Низкоуровневые типы и операции.

Осторожное преобразование типа

Часть преобразований типа являются низкоуровневыми и/или требуют особого внимания разработчика. Для использования таких преобразований операция преобразования должна быть помечана ключевым словом осторожно, кроме того исходный файл, в котором используется небезопасное преобразование тоже должен быть помечен ключевым словом осторожно.

Преобразование: '(:' 'осторожно'? Указ-типа ')'

Разрешенные преобразования:

Целевой тип Тип выражения
Цел64 Слово64
Вещ64 Слово64
Слово64 Цел64
Слово64 Вещ64
Слово64 ссылочный тип
Слово64 функциональный тип
ссылочный тип Слово64
функциональный тип функциональный тип

Ссылочными типами являются Строка, типы вектора и типы класса.

Особенности преобразований:

  • Все преобразования выполняются без изменения битового представления.
  • Для преобразования Слово64 в ссылочный тип выполняется проверка времени исполнения, и запускается аварийная ситуация в случае несовпадения целевого типа и динамического типа выражения.
  • Преобразование функционального типа в Слово64 разрешено только, если операнд является функцией (но не методом).