10.01.2011 21:08, Mitja пишет:
Thanks, toDelegate is what I've been looking for.

It still segfaults, though.
The setup:
=======
module mod1;

import std.algorithm;
import std.functional;
import std.stdio;

void main( ) {
    auto haystack = ["a","b","c"];
    auto needle = "b";
    auto flt = delegate(string s){return s == needle;};
    auto dg = toDelegate( flt );
    auto result = filter!dg(haystack);
    writeln(result);
}
=========
module mod2;

import std.string;
// or import std.conv;
// or import std.random;
========
dmd mod2.d mod1.d compiles, but compiled program segfaults.
System is Debian GNU/Linux 5.0 on 2.6.26-2-686 #1 SMP i686.
dmd is D 2.051.

Try it with previous compiler version. It looks like a bug I've reported not so long ago: in 2.051 functions with 'auto' result type and at least one parameter cause segfault during compilation when they are in a separate module. I can't remember issue number right now (and have no internet connection to find it), but it's pretty recent.

Reply via email to