On Thursday, 19 February 2015 at 08:24:08 UTC, Jonathan Marler wrote:
I am having a heck of a time trying to figure out how to do this. How do I change the attributes of a function based on the version without copying the function body? For example:

version(StaticVersion) {
    static void myLongFunction()
    {
        // long body ...
    }
} else {
    void myLongFunction()
    {
        // same long body copied...
    }
}

In one version I want the function to be static and in another I don't want it to be static. I cannot figure out how to do this without copy/pasting the entire function body to both versions.

Same problem is seen with "shared" and "non-shared" class methods as well. I hope there is a good solution for it.

If it was C, by using #ifdef #else #endif, just the name line of function could be changed, but I am not sure whether that works with "version()" expression.

Reply via email to