Следующая программа на языке 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)