ilovb писал(а):
Ярослав, а что мешает заложить NULL в тип?
Т.е. определять тип с явным указанием, что он может быть NULL.
Причем в этом случае язык не должен допускать разыменования без проверки.
На NULL ведь можно смотреть как на обычный тип.
Допустим у нас есть указатель, который может в рантайме иметь
разные типы. Например, типов два [POINTER TO Rec] и [NULL].
Тогда обращение дожно быть через WITH.
зы Вспышки на солнце чтоль:
http://oberspace.dyndns.org/index.php/t ... l#msg21657В принципе так, как вы предлагаете, сделать можно. Но в любом случае, если тип [NULL], а мы попытаемся обратиться к нему как к какому-то другому типу, то должна произойти остановка программы.
И получается, что нет большой разницы, что традиционный NULL, что пустой тип NULL. И там, и там получается прерывание программы.
Думаю, что если бы был статический анализатор, который бы предупреждал о том, что может быть разыменование нулевого указателя, и не указывал бы на безопасные места, где точно не может быть разыменования нулевого указателя, то это было бы решением проблемы с NULL.