9 #ifndef ARRAY_PROXY_H_INCLUDED
10 #define ARRAY_PROXY_H_INCLUDED
13 #include <Pb/meta_fwd.h>
14 #include <Pb/type_list.h>
15 #include <Pb/type_at.h>
27 template<
class ArrayT >
34 template<
class T,
size_t N>
35 struct array_size< std::array<T, N> >
36 : std::integral_constant<size_t, N>
42 template<
class T,
size_t N>
44 : std::integral_constant<size_t, N>
54 template<
size_t IdxT,
88 const size_t k_extent = array_size<index_type>::value;
93 std::conditional< std::is_base_of<array_trait, index_type>::value,
191 size_t size_of()
const {
return sizeof(this->
get()); }
201 std::copy( value.begin(),
213 std::copy( &value[0],
214 (&value[0]) + k_extent,
285 const_iterator begin()
const {
return this->
get().begin(); }
286 const_iterator cbegin()
const {
return this->
get().cbegin(); }
292 const_iterator end()
const {
return this->
get().end(); }
293 const_iterator cend()
const {
return this->
get().cend(); }
299 const_reverse_iterator rbegin()
const {
return this->
get().rbegin(); }
300 const_reverse_iterator crbegin()
const {
return this->
get().crbegin();}
307 const_reverse_iterator rend()
const {
return this->
get().rend(); }
308 const_reverse_iterator crend()
const {
return this->
get().crend(); }