source:
src/examples/abstype.c
@
b826e6b
Last change on this file since b826e6b was ca26509, checked in by , 8 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.