00001 #ifndef SGE_ARRAY_FACADE_HPP_INCLUDED 00002 #define SGE_ARRAY_FACADE_HPP_INCLUDED 00003 00004 #include <iterator> 00005 00006 namespace sge 00007 { 00008 00009 template< 00010 typename ThisType, 00011 typename SizeType, 00012 typename Reference, 00013 typename Pointer, 00014 typename Iterator, 00015 typename ConstIterator> 00016 class array_facade { 00017 public: 00018 typedef ThisType this_type; 00019 typedef SizeType size_type; 00020 typedef Reference reference; 00021 typedef Reference const const_reference; 00022 typedef Pointer pointer; 00023 typedef Pointer const const_pointer; 00024 typedef Iterator iterator; 00025 typedef ConstIterator const_iterator; 00026 typedef std::reverse_iterator< 00027 iterator> reverse_iterator; 00028 typedef std::reverse_iterator< 00029 const_iterator> const_reverse_iterator; 00030 00031 iterator begin(); 00032 iterator end(); 00033 const_iterator begin() const; 00034 const_iterator end() const; 00035 reverse_iterator rbegin(); 00036 reverse_iterator rend(); 00037 const_reverse_iterator rbegin() const; 00038 const_reverse_iterator rend() const; 00039 00040 reference operator[](size_type); 00041 const_reference operator[](size_type) const; 00042 reference at(size_type); 00043 const_reference at(size_type) const; 00044 }; 00045 00046 } 00047 00048 #endif
1.5.5