source:
examples/abstype.c@
c4b072c
| Last change on this file since c4b072c was bf71cfd, checked in by , 7 years ago | |
|---|---|
|
|
| File size: 822 bytes | |
| Rev | Line | |
|---|---|---|
| [86bd7c1f] | 1 | // |
| 2 | // Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo | |
| 3 | // | |
| 4 | // The contents of this file are covered under the licence agreement in the | |
| 5 | // file "LICENCE" distributed with Cforall. | |
| 6 | // | |
| 7 | // abstype.c -- | |
| 8 | // | |
| 9 | // Author : Richard C. Bilson | |
| 10 | // Created On : Wed May 27 17:56:53 2015 | |
| 11 | // Last Modified By : Peter A. Buhr | |
| [ca26509] | 12 | // Last Modified On : Tue Jun 14 14:27:48 2016 |
| 13 | // Update Count : 9 | |
| [86bd7c1f] | 14 | // |
| [a0d9f94] | 15 | |
| [7937abf] | 16 | otype T | { T x( T ); }; |
| [a0d9f94] | 17 | |
| 18 | T y( T t ) { | |
| [86bd7c1f] | 19 | T t_instance; |
| 20 | return x( t ); | |
| [a0d9f94] | 21 | } |
| 22 | ||
| [ca26509] | 23 | forall( otype T ) lvalue T *?( T * ); |
| [7937abf] | 24 | int ?++( int * ); |
| 25 | int ?=?( int *, int ); | |
| [ca26509] | 26 | forall( dtype DT ) DT * ?=?( DT **, DT * ); |
| [a0d9f94] | 27 | |
| [7937abf] | 28 | otype U = int *; |
| [a0d9f94] | 29 | |
| 30 | U x( U u ) { | |
| [86bd7c1f] | 31 | U u_instance = u; |
| 32 | (*u)++; | |
| 33 | return u; | |
| [a0d9f94] | 34 | } |
| 35 | ||
| 36 | int *break_abstraction( U u ) { | |
| [86bd7c1f] | 37 | return u; |
| [a0d9f94] | 38 | } |
| [86bd7c1f] | 39 | |
| 40 | // Local Variables: // | |
| 41 | // tab-width: 4 // | |
| 42 | // compile-command: "cfa abstype.c" // | |
| 43 | // End: // |
Note:
See TracBrowser
for help on using the repository browser.