On 8 April 2013 20:10, Dicebot <m.stras...@gmail.com> wrote: > On Monday, 8 April 2013 at 09:41:05 UTC, Jacob Carlborg wrote: > >> On 2013-04-08 11:17, Dicebot wrote: >> >> b) You are forced to make function templated to mark it as @nogc. Bad. >>> >> >> It depends on how it's used. If it's enough to annotate a type the >> function doesn't need to be templated. This should work just fine: >> >> class Foo { } >> >> struct ThreadSafe (T) >> { >> T t; >> } >> >> ThreadSafe!(Foo) foo; >> >> void process (ThreadSafe!(Foo) foo) { /* process foo */ } >> > > Hm, so you propose to use something like Malloced!Data / Stack!Data > instead of marking whole function with @nogc? Interesting, I have never > though about this approach, may be worth trying as proof-of-concept. >
It's such a dirty hack though ;) .. that does not give the impression, or confidence that the language addresses the problem. Actually, quite the opposite. If I saw that, I'd be worried...