active class counter {\c{\zline{\fbox{Active C++}}}
private: int val; public: active counter( int n ) { val = n; for(;;) accept (operator++ , operator() ); } void operator++ () { val++; } int operator() () { return val; } };
active class buffer { private: item it; public: item get () { return it; } void put (item i) { it = i; } active buffer () { do { accept( put ); accept( get ); } while (1); } };
if (used < size && used > 0) accept(put,get) else if (used == 0) accept(put) else accept(get);