Is it possible to elegantly craft a class that can be used as shared and as normal?

I have a class which functions fine when instantiated as normal but i want to enable it for use for shared objects.

    auto t = T();
    auto t = shared(T)();  //<--- like this.

Then i have the problem that a shared object can not call non shared methods. The only solution i can see is to have multiple overloads of the class' methods to handle being shared, like this:

class T
{
    public void Foo() {...}
    public shared void Foo() {...}
}

Is this the right way of going about this? The reason i ask is that both methods have exactly the same code and to avoid duplication i'm using mixins for each method body, yuk! help?

Reply via email to