I am creating a templated object that is a storehouse for a heap object and executes their methods and returns an array of results. With the help of a template, I want to achieve this, but I want to assign the same attributes to the function. How can one pass the attributes of a function to another function?

```d
template Group(T, int objects)
{
    struct Group
    {
        enum __length = __traits(allMembers, T).length;

        T[objects] __objects;

        this(T[objects] __objctor) @safe
        {
            __objects = __objctor;
        }

        static foreach (member; __traits(allMembers, T))
        {
static if ( __traits(getVisibility, __traits(getMember, T, member)) != "private" && __traits(getVisibility, __traits(getMember, T, member)) != "protected")
            {
static if (isFunction!(__traits(getMember, T, member)))
                {
mixin ("ReturnType!(__traits(getMember, T, member))[] " ~ member ~ "(Parameters!(__traits(getMember, T, member)) args)
                    {
ReturnType!(__traits(getMember, T, member))[] results;
                        foreach (e; __objects)
                            results ~= e." ~ member ~ "(args);

                        return results;
                    }");
                }else
                static if (member != "Monitor")
                {
mixin ("typeof(__traits(getMember, T, member))[] " ~ member ~ "()
                    {
typeof(__traits(getMember, T, member))[] results;
                        foreach (e; __objects)
                            results ~= e." ~ member ~ ";
                        return results;
                    }");
                }
            }
        }
    }
}
```

Reply via email to