Применять с осторожностью
{: #unsafe}}
Низкоуровневые типы и операции.
Осторожное преобразование типа
Часть преобразований типа являются низкоуровневыми и/или требуют особого внимания разработчика. Для использования таких преобразований операция преобразования должна быть помечана ключевым словом осторожно, кроме того исходный файл, в котором используется небезопасное преобразование тоже должен быть помечен ключевым словом осторожно.
Преобразование: '(:' 'осторожно'? Указ-типа ')'
Разрешенные преобразования:
| Целевой тип | Тип выражения |
|---|---|
Цел64 | Слово64 |
Вещ64 | Слово64 |
Слово64 | Цел64 |
Слово64 | Вещ64 |
Слово64 | ссылочный тип |
Слово64 | функциональный тип |
| ссылочный тип | Слово64 |
| функциональный тип | функциональный тип |
Ссылочными типами являются Строка, типы вектора и типы класса.
Особенности преобразований:
- Все преобразования выполняются без изменения битового представления.
- Для преобразования
Слово64в ссылочный тип выполняется проверка времени исполнения, и запускается аварийная ситуация в случае несовпадения целевого типа и динамического типа выражения. - Преобразование функционального типа в
Слово64разрешено только, если операнд является функцией (но не методом).