std.functional.compose compilation error
Antonio Corbi via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Aug 25 07:06:32 PDT 2016
Hello,
Trying to compile this example from Chuck Allison:
-------------------------------------------
import std.stdio;
import std.functional;
void main() {
auto div3 = (double x) => x/3.0;
auto sq = (double x) => x*x;
auto pls1 = (double x) => x+1.0;
alias compose!(div3,sq,pls1) comp;
writeln(comp(2.0)); // 3 == (2.0+1.0)^^2 / 3.0
alias pipe!(div3,sq,pls1) pip;
writeln(pip(2.0)); // 1.44444 == (2.0/3.0)^^2 + 1.0
}
--------------------------------------------
I get this error (with DMD64 D Compiler v2.071.1 in linux):
compose.d(8): Error: template instance compose!(div3, sq, pls1)
compose is not a template declaration, it is a module
But the error disappears if I use this import:
import std.functional:compose,pipe;
Is this a bug or is it the expected behaviour under the recent
'import' changes?
Thanks!
More information about the Digitalmars-d-learn
mailing list