Thread overview | |||||
---|---|---|---|---|---|
|
December 10, 2016 function is not callable using argument types () | ||||
---|---|---|---|---|
| ||||
import std.stdio; import std.concurrency; void main() { void sp(int i) { receive((int i) { writeln("i: ", i); }); } auto r = new Generator!int( { foreach(i; 1 .. 10) yield(i); }); foreach(e;r) { sp.send(e); //Error: function app.main.sp (int i) is not callable using argument types () } } What I am doing wrong? How "receive" can be named? Is it's method or what? Why it's without return type? |
December 10, 2016 Re: function is not callable using argument types () | ||||
---|---|---|---|---|
| ||||
Posted in reply to Suliman | On Saturday, 10 December 2016 at 08:41:56 UTC, Suliman wrote:
> import std.stdio;
> import std.concurrency;
>
> void main()
> {
>
> void sp(int i)
> {
> receive((int i)
> {
> writeln("i: ", i);
> });
> }
>
> auto r = new Generator!int(
> {
> foreach(i; 1 .. 10)
> yield(i);
> });
>
> foreach(e;r)
> {
> sp.send(e); //Error: function app.main.sp (int i) is not callable using argument types ()
> }
>
> }
>
>
> What I am doing wrong? How "receive" can be named? Is it's method or what? Why it's without return type?
Sp is not in global scope but defined in main.
Therefore it does not participate in UFCS.
|
December 12, 2016 Re: function is not callable using argument types () | ||||
---|---|---|---|---|
| ||||
Posted in reply to Suliman | On Saturday, 10 December 2016 at 08:41:56 UTC, Suliman wrote: > import std.stdio; > import std.concurrency; > > void main() > { > > void sp(int i) > { > receive((int i) > { > writeln("i: ", i); > }); > } > > auto r = new Generator!int( > { > foreach(i; 1 .. 10) > yield(i); > }); > > foreach(e;r) > { > sp.send(e); //Error: function app.main.sp (int i) is not callable using argument types () > } > > } > > > What I am doing wrong? How "receive" can be named? Is it's method or what? Why it's without return type? Read: https://dlang.org/spec/function.html#pseudo-member |
Copyright © 1999-2021 by the D Language Foundation