Reply to bearophile, >> Reply to mike, >> >>> Wouldn't it suffice to overload the new keyword? >>> heap: >>> delegate t = new { return 3; } >>> stack: >>> delegate t = { return 3; } > Generally in D the default behavior must be the safer one, in this > situation it means the heap version... but "is heap allocation always safe?"