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.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 */ }