Problem: handling a function dependent on release mode.

Namespace rswhite4 at googlemail.com
Fri Jul 20 14:47:52 PDT 2012


On Friday, 20 July 2012 at 21:36:59 UTC, Damian wrote:
> Trying to convert the below code to D, for the life of me I
> cannot do it :( I'm guess I need to use a template for this
> but I just cannot get my head around it. Any help please?
>
> #ifdef SFML_DEBUG
>
>      // If in debug mode, perform a test on every call
>      #define alCheck(Func) ((Func), priv::alCheckError(__FILE__,
> __LINE__))
>
> #else
>
>      // Else, we don't add any overhead
>      #define alCheck(Func) (Func)
>
> #endif
>
>
> void alCheckError(const std::string& file, unsigned int line);

Maybe something like that?

void alCheck(lazy void Func, string filename = __FILE__, uint
line = __LINE__) {
	Func();
	
	debug {
		alCheckError(filename, line);
	}
}


More information about the Digitalmars-d-learn mailing list