@ -1052,6 +1052,7 @@ public: 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  iterator              erase ( const_iterator  it )         {  IM_ASSERT ( it  > =  Data  & &  it  <  Data + Size ) ;  const  ptrdiff_t  off  =  it  -  Data ;  memmove ( Data  +  off ,  Data  +  off  +  1 ,  ( ( size_t ) Size  -  ( size_t ) off  -  1 )  *  sizeof ( value_type ) ) ;  Size - - ;  return  Data  +  off ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  iterator              insert ( const_iterator  it ,  const  value_type &  v )   {  IM_ASSERT ( it  > =  Data  & &  it  < =  Data + Size ) ;  const  ptrdiff_t  off  =  it  -  Data ;  if  ( Size  = =  Capacity )  reserve ( Capacity  ?  Capacity  *  2  :  4 ) ;  if  ( off  <  ( int ) Size )  memmove ( Data  +  off  +  1 ,  Data  +  off ,  ( ( size_t ) Size  -  ( size_t ) off )  *  sizeof ( value_type ) ) ;  Data [ off ]  =  v ;  Size + + ;  return  Data  +  off ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  bool                  contains ( const  value_type &  v )  const              {  const  T *  data  =  Data ;   const  T *  data_end  =  Data  +  Size ;  while  ( data  <  data_end )  if  ( * data + +  = =  v )  return  true ;  return  false ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Helper: execute a block of code at maximum once a frame. Convenient if you want to quickly create an UI within deep-nested code that runs multiple times every frame.