

/*!
  @author d‹à‹›
  @since 2006/01/17
	@note
	licence:BSD Licence
*/


#ifndef DKUTIL_DKTL_DEQUE_HPP
#define DKUTIL_DKTL_DEQUE_HPP


#include <list>
#include <array>


namespace dkutil{

	template<class T>
	class deque_base{
		typedef boost::array<T> inner_container;
		typedef std::list<inner_container> container_type;
		container_type mC;
		class iterator_base{
			//inner state
			inner_container::iterator is;

			//outer state
			container_type::iterator os;
			iterator_base(){
			}
			iterator_base(const iterator_base &x){
				*this = x;
			}
			iterator_base &operator=(const iterator_base &x){
				is = x.is;
				os = x.os;
			}
			~iterator_base(){
				
			}
			iterator_base &operator++(){
				dkcmFORCE_NOT_ASSERT(pi == NULL);
				inner_container &t = (*os);
				if(is == t.end()){
					t++;
					is = t.begin();
				}else{
					is++;
				}
			}


		};
		deque_base(){

		}

		
		
	};

}//end of dkutil namepsace

#endif //end of include once