RAII trouble
    Spacen Jasset via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Fri Nov 20 14:56:37 PST 2015
    
    
  
I have the following code in attempt to create an RAII object 
wrapper, but it seems that it might be impossible. The problem 
here is that FT_Init_FreeType is a static which is set at some 
previous time to a function entry point in the FreeType library.
I could use a scope block, but would rather have a self contained 
thing to do the work. Perhaps some sort of mixin is the other 
solution?
The ideal would be to have a struct that can be placed inside a 
function scope, or perhaps as a module global variable. Why does 
Ft_Init_FreeType have to be read at compile time?
text.d(143,15): Error: static variable FT_Init_FreeType cannot be 
read at compile time
text.d(174,43):        called from here: initialise()
struct FreeType
{
	@disable this();
	static FreeType initialise()
	{
		return FreeType(0);
	}
	this(int)
	{
		int error = FT_Init_FreeType(&library); /// ERROR
		enforce(!error);
	}
	
	alias library this;
	
	~this()
	{
		FT_Done_FreeType(library);
	}
	FT_Library library;
}
FreeType   freeType = FreeType.initialise();
    
    
More information about the Digitalmars-d-learn
mailing list