Bernard Escaillas
/
MidiTee
stack.h
- Committer:
- Midimetric
- Date:
- 2011-06-07
- Revision:
- 0:71d791204057
File content as of revision 0:71d791204057:
#ifndef STACK_H #define STACK_H template<class T> class Stack { public: T Data[50]; short Position; Stack() : Position(0) {} inline void Push( T v ) { if( Position < 50 ) Data[Position++] = v; } inline T Pull() { if( Position ) return Data[--Position]; else return (T)NAKN; } void Pull( T &a ) { if( Position ) a = Data[--Position]; else a = (T)NAKN; } void Pull( T &b, T &a ) { if( Position ) b = Data[--Position]; else b = (T)NAKN; if( Position ) a = Data[--Position]; else a = (T)NAKN; } void Pull( T &c, T &b, T &a ) { if( Position ) c = Data[--Position]; else c = (T)NAKN; if( Position ) b = Data[--Position]; else b = (T)NAKN; if( Position ) a = Data[--Position]; else a = (T)NAKN; } void Pull( T &d, T &c, T &b, T &a ) { if( Position ) d = Data[--Position]; else d = (T)NAKN; if( Position ) c = Data[--Position]; else c = (T)NAKN; if( Position ) b = Data[--Position]; else b = (T)NAKN; if( Position ) a = Data[--Position]; else a = (T)NAKN; } }; #endif