ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newstringwith_gc
Last change
on this file since 42dcae7 was
51b7345,
checked in by Peter A. Buhr <pabuhr@…>, 10 years ago
|
initial commit
|
-
Property mode set to
100644
|
File size:
803 bytes
|
Rev | Line | |
---|
[51b7345] | 1 | context addable(type T) { |
---|
| 2 | T ?+?(T,T); |
---|
| 3 | }; |
---|
| 4 | |
---|
| 5 | type List(type T | addable(T) ) | addable(T) = struct { T data; List(T) *next; } *; |
---|
| 6 | typedef List(int) ListOfIntegers; |
---|
| 7 | ListOfIntegers li; |
---|
| 8 | int f( List(int) ((*g))(int) ); |
---|
| 9 | [int] h( * List(int) p ); // new declaration syntax |
---|
| 10 | |
---|
| 11 | struct(type T) S1; // forward definition |
---|
| 12 | struct(type T) S1 { T i; }; // actual definition |
---|
| 13 | struct(int) S1 v1, *p; // expansion and instantiation |
---|
| 14 | struct(type T)(int) S2 { T i; } v2; // actual definition, expansion and instantiation |
---|
| 15 | struct(type T)(int) { T i; } v2; // anonymous actual definition, expansion and instantiation |
---|
| 16 | |
---|
| 17 | struct(type T | addable(T) ) node { T data; struct(T) node *next; }; |
---|
| 18 | type List(type T) = struct(T) node *; |
---|
| 19 | List(int) my_list; |
---|
| 20 | |
---|
| 21 | type Complex | addable(Complex); |
---|
| 22 | |
---|
| 23 | int main() { |
---|
| 24 | (struct(int) node)my_list; |
---|
| 25 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.