July 16, 2011
I see this code AT THE TOP (MODULE) LEVEL of one of Michel Fortin's D/Objective-C bridge source files and I'm trying to wrap my head around it.

	/** Wrap an object instance within an object of this class. */
	static Object
	objcCreateWrapper(T)(id instance)
	{
		// Retain the Objective-C instance prior wrapping it.
		// It needs to be done prior wrapping so that
		// invariants holds
		// after the constructor is called.
		objc.msg.send!(id)(instance, selector!("retain"));
		
		// Create new Wrapper.
		return new T(instance);
	}

At issues is the keyword "static" in front of the template function. This is not inside of a class, so static does not seem to make sense with what I know about D.  Can anyone explain this to me?

--Christopher

July 17, 2011
On 2011-07-16 23:34, Christopher the Magnificent wrote:
> I see this code AT THE TOP (MODULE) LEVEL of one of Michel Fortin's
> D/Objective-C bridge source files and I'm trying to wrap my head around it.
>
> /** Wrap an object instance within an object of this class. */
> static Object
> objcCreateWrapper(T)(id instance)
> {
> // Retain the Objective-C instance prior wrapping it.
> // It needs to be done prior wrapping so that
> // invariants holds
> // after the constructor is called.
> objc.msg.send!(id)(instance, selector!("retain"));
>
> // Create new Wrapper.
> return new T(instance);
> }
>
> At issues is the keyword "static" in front of the template function.
> This is not inside of a class, so static does not seem to make sense
> with what I know about D. Can anyone explain this to me?
>
> --Christopher

I'm guessing it has no affect on the code, possible it used to be a static method in a class.

-- 
/Jacob Carlborg