source: translator/examples/iostream.h @ 8c17ab0

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 8c17ab0 was 134b86a, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

add compiler flag to driver, update examples, fix unnamed bit fields

  • Property mode set to 100644
File size: 1.1 KB
RevLine 
[51b7345]1#ifndef IOSTREAM_H
2#define IOSTREAM_H
3
4typedef unsigned long streamsize_type;
5
[134b86a]6context ostream( dtype ostype ) {
7    ostype *write( ostype *, const char *, streamsize_type );
8    int fail( ostype * );
[51b7345]9};
10
[134b86a]11context writeable( type T ) {
12    forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, T );
[51b7345]13};
14
15// implement writable for some intrinsic types
16
17forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, char );
18forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, int );
[134b86a]19forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, double );
[51b7345]20forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, const char * );
21
22
[134b86a]23context istream( dtype istype ) {
24    istype *read( istype *, char *, streamsize_type );
25    istype *unread( istype *, char );
26    int fail( istype * );
27    int eof( istype * );
[51b7345]28};
29
[134b86a]30context readable( type T ) {
31    forall( dtype istype | istream( istype ) ) istype * ?<<?( istype *, T );
[51b7345]32};
33
34forall( dtype istype | istream( istype ) )
[134b86a]35istype * ?>>?( istype *, char * );
[51b7345]36
37forall( dtype istype | istream( istype ) )
[134b86a]38istype * ?>>?( istype *, int * );
[51b7345]39
[134b86a]40#endif // IOSTREAM_H
Note: See TracBrowser for help on using the repository browser.