I tried the following:

import std.stdio;
import std.regex;

bool lol(string name, string val)
{
    if (name == "lal")
        if (val[0..3] == "2124")
            return true;
    return false;
}

bool lal(string name, string val) { return false; }
alias bool delegate(string, string) DgType;
void main()
{
    struct Filter
    {

        private DgType[] delFuncs; // array with functions :D


        public void add(DgType filter_func) {
            delFuncs ~= filter_func;
        }
    }

    auto x = Filter();
    x.add(&lol);
    x.add(&lal);

    writeln(x);
}

Didn't work... just a bunch of errors...

t.d(28): Error: function t.main.Filter.add (bool delegate(string, string) filter_func) is not callable using argument types (bool function(string name, string v
al))
t.d(28): Error: cannot implicitly convert expression (& lol) of type bool function(string name, string val) to bool delegate(string, string) t.d(29): Error: function t.main.Filter.add (bool delegate(string, string) filter_func) is not callable using argument types (bool function(string name, string v
al))
t.d(29): Error: cannot implicitly convert expression (& lal) of type bool function(string name, string val) to bool delegate(string, string)

Thanks for help!


Reply via email to