1 // function type aliases
4 alias F1
= const(int)(); const(int) f1(){return 42;}
5 static assert (is(F1
== typeof(f1
)));
7 alias F2
= float(float); float f2(float p
){return p
;}
8 static assert (is(F2
== typeof(f2
)));
10 alias F3
= void(); void f3(){}
11 static assert (is(F3
== typeof(f3
)));
13 alias void F41() @safe;
14 alias F42
= void() @safe;
15 alias F43
= @safe void();
16 static assert (is(F41
== F42
));
17 static assert (is(F43
== F42
));
19 alias void F51() @system;
20 alias F52
= void() @safe;
21 static assert (!is(F51
== F52
));
23 alias F61
= int() const shared;
24 alias int F62() const shared ;
25 alias F63
= const shared int();
26 static assert (is(F61
== F62
));
27 static assert (is(F63
== F62
));
29 alias F71
= int() immutable inout;
30 alias int F72() immutable inout;
31 alias F73
= immutable inout int();
32 static assert (is(F71
== F72
));
33 static assert (is(F73
== F72
));
35 alias FunTemplate(T
) = void(T t
);
36 alias Specialized
= FunTemplate
!int;
37 alias Compared
= void(int);
38 static assert(is(Specialized
== Compared
));
41 alias FT
= const(int)*();
42 static assert(is(FT
* == const(int)* function()));
43 alias FT2
= int*[2]() pure;
44 static assert(is(FT2
* == int*[2] function() pure));