What can be done to reduce executable size?
    Adam D. Ruppe 
    destructionator at gmail.com
       
    Fri Dec 16 09:05:39 PST 2011
    
    
  
On Friday, 16 December 2011 at 16:35:27 UTC, Jonathan M Davis 
wrote:
> That would break purity, so no that doesn't work. The 
> singletons are pure.
I'm tempted to say just cast it away, since you aren't actually
breaking purity in any meaningful way; the return value is always
the same and it should have no other side effects (except on the
internal variable).
Lying around pure was a bit of a pain... but this seems to have
done the trick:
alias pure string function () hax;
private string impureConstructor() {
        static string cache;
        if(cache is null)
                cache = "lol pure defeated";
        return cache;
}
private pure hax getPureConstructor() { return cast(hax) 
&impureConstructor; }
public @system @property pure string test() {
        return getPureConstructor()();
}
// test now works
    
    
More information about the Digitalmars-d
mailing list