Changeset 323 for trunk/nv/core/array.hh


Ignore:
Timestamp:
08/26/14 04:03:10 (11 years ago)
Author:
epyon
Message:
  • nova now compiles again under all three compilers with -Winsane and no warnings
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/nv/core/array.hh

    r319 r323  
    1616#include <nv/core/common.hh>
    1717#include <vector>
     18#include <algorithm>
    1819#include <array>
    1920
    2021namespace nv
    2122{
    22         namespace detail
    23         {
    24                 template < typename T >
    25                 class array_base
    26                 {
    27                 public:
    28                         typedef T              value_type;
    29                         typedef T*             iterator;
    30                         typedef const T*       const_iterator;
    31                         typedef T&             reference;
    32                         typedef const T&       const_reference;
    33                         typedef std::size_t    size_type;
    34                         typedef std::ptrdiff_t difference_type;
    35 
    36                         typedef std::reverse_iterator<iterator>       reverse_iterator;
    37                         typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
    38                 };
    39         }
    40 
    4123        using std::vector;
    4224        using std::array;
    4325
    4426        template< class T, std::size_t N >
    45         class static_array : public detail::array_base<T>
     27        class static_array
    4628        {
    4729        public:
     30                typedef T              value_type;
     31                typedef T*             iterator;
     32                typedef const T*       const_iterator;
     33                typedef T&             reference;
     34                typedef const T&       const_reference;
     35                typedef std::size_t    size_type;
     36                typedef std::ptrdiff_t difference_type;
     37
     38                typedef std::reverse_iterator<iterator>       reverse_iterator;
     39                typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
     40
    4841                iterator        begin()        { return m_data; }
    4942                const_iterator  begin()  const { return m_data; }
     
    9992
    10093        template< class T >
    101         class dynamic_array : public detail::array_base<T>
     94        class dynamic_array
    10295        {
    10396        public:
     97                typedef T              value_type;
     98                typedef T*             iterator;
     99                typedef const T*       const_iterator;
     100                typedef T&             reference;
     101                typedef const T&       const_reference;
     102                typedef std::size_t    size_type;
     103                typedef std::ptrdiff_t difference_type;
     104
     105                typedef std::reverse_iterator<iterator>       reverse_iterator;
     106                typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
     107
    104108                dynamic_array()
    105109                        : m_data( nullptr ), m_size(0) {}
Note: See TracChangeset for help on using the changeset viewer.