git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/stack.h
 | 
						|
// Purpose:     STL stack clone
 | 
						|
// Author:      Lindsay Mathieson
 | 
						|
// Modified by:
 | 
						|
// Created:     30.07.2001
 | 
						|
// Copyright:   (c) 2001 Lindsay Mathieson <lindsay@mathieson.org>
 | 
						|
// Licence:     wxWindows licence
 | 
						|
///////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_STACK_H_
 | 
						|
#define _WX_STACK_H_
 | 
						|
 | 
						|
#include "wx/vector.h"
 | 
						|
 | 
						|
#define WX_DECLARE_STACK(obj, cls)\
 | 
						|
class cls : public wxVectorBase\
 | 
						|
{\
 | 
						|
    WX_DECLARE_VECTORBASE(obj, cls);\
 | 
						|
public:\
 | 
						|
    void push(const obj& o)\
 | 
						|
    {\
 | 
						|
        if ( !Alloc(size() + 1) )\
 | 
						|
        {\
 | 
						|
            wxFAIL_MSG(_T("failed to extend stack"));\
 | 
						|
        }\
 | 
						|
        Append(new obj(o));\
 | 
						|
    };\
 | 
						|
\
 | 
						|
    void pop()\
 | 
						|
    {\
 | 
						|
        RemoveAt(size() - 1);\
 | 
						|
    };\
 | 
						|
\
 | 
						|
    obj& top()\
 | 
						|
    {\
 | 
						|
        return *(obj *) GetItem(size() - 1);\
 | 
						|
    };\
 | 
						|
    const obj& top() const\
 | 
						|
    {\
 | 
						|
        return *(obj *) GetItem(size() - 1);\
 | 
						|
    };\
 | 
						|
}
 | 
						|
 | 
						|
#endif // _WX_STACK_H_
 | 
						|
 |