Следующая программа на языке D, как написано в мануале должна выдавать результат false, true, но почему-то doit видит n не таким, каким он был проинициализирован и выдаёт UB. Версия DMD 1.030, GDC 0.24. В чём может быть проблема? import std.stdio; bool delegate(T) gtn(T) ( T n ) { writefln( n ); bool doit( T m ) { writefln( "%d > %d", m, n ); return m > n; } return &doit; } void main() { auto g5 = gtn( 5 ); writefln( g5( 1 ) ); writefln( g5( 6 ) ); }
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [D] Вывод юникодного текста посимвольно (2008)
- Форум D + GTK, динамические библиотеки (2010)
- Форум [c++] CL's with-open-file like macro in C++ (2008)
- Форум Функция, меняющая тип возвращаемого значения в зависимости от переменной C++ (2015)
- Форум Помогите понять причину segfault'а (2012)
- Форум Data race (2021)
- Форум шаблонный класс && static экземпляр в нем же (2005)
- Форум Как наглядно показать, что используется несколько потоков? (2017)
- Форум Qt под win, линкер выдает ошибки (2007)
- Форум Выбор архитектуры (2020)