On Sunday, 19 April 2020 at 22:07:30 UTC, jmh530 wrote:
On Thursday, 16 April 2020 at 20:59:36 UTC, jmh530 wrote:
[snip]

/+dub.sdl:
dependency "mir-algorithm" version="~>3.7.28"
+/

import mir.ndslice;

void foo(Iterator, SliceKind kind)(Slice!(Iterator, 1, kind) x, Slice!(Iterator, 1, kind) y) {
    import std.stdio : writeln;
    writeln("here");
}

void main() {
    auto x = [0.5, 0.5].sliced(2);
    auto y = x * 5.0;
    foo(x, y);
}

This is really what I was looking for (need to make allocation, unfortunately)

/+dub.sdl:
dependency "mir-algorithm" version="~>3.7.28"
+/

import mir.ndslice;

void foo(Iterator, SliceKind kind)(Slice!(Iterator, 1, kind) x, Slice!(Iterator, 1, kind) y) {
    import std.stdio : writeln;
    writeln("here");
}

void main() {
    auto x = [0.5, 0.5].sliced(2);
    auto y = x * 5.0;
    foo(x, y.slice);
}

Using two arguments Iterator1, Iterator2 works without allocation

/+dub.sdl: dependency "mir-algorithm" version="~>3.7.28" +/
import mir.ndslice;

void foo(Iterator1, Iterator2, SliceKind kind)
        (Slice!(Iterator1, 1, kind) x, Slice!(Iterator2, 1, kind) y)
{
    import std.stdio : writeln;
    writeln("here");
}

void main() {
    auto x = [0.5, 0.5].sliced(2);
    auto y = x * 5.0;
    foo(x, y);
}

Reply via email to