I am using a variadic function for a resource manager to be able to load resources with custom parameters.

My problem is I don't get the second parameter correctly, i am expecting to retrieve a dynamic array.

[CODE]
class ResourceManager
    T    getResource(T : IResource)(string filePath, ...)
    {
        T       instance;

        ...
                
        instance = new T;
        instance.load(filePath, _arguments);

        ...
                
        return instance;
    }
}
        
class VBO(T) : IResource
{
    mixin ResourceBase;

public:
    void        load(...)
    {
        string  filePath = va_arg!string(_argptr);
                
        auto size = _arguments[0].tsize();
        _argptr += ((size + size_t.sizeof - 1) & ~(size_t.sizeof - 1));
        mArray = va_arg!(T[])(_argptr);

        mArray = cast(T[])_arguments[1];

        ...
    }
}

// Somewhere else I try to retrieve the resource
mIndexes = resourceManager.getResource!(VBO!GLushort)("dquick.renderer_2d.opengl.rectangle.indexes", [0, 1, 2, 1, 3, 2]); // We use the module name as basePath and the variable name as filename

[/CODE]

In the load(...) method I am getting filePath without issue, but for next parameters I am little confused on how to do.

Reply via email to