aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/libstdc++-v3/include/std/array
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/libstdc++-v3/include/std/array')
-rw-r--r--gcc-4.9/libstdc++-v3/include/std/array40
1 files changed, 20 insertions, 20 deletions
diff --git a/gcc-4.9/libstdc++-v3/include/std/array b/gcc-4.9/libstdc++-v3/include/std/array
index 67680d61e..b7abeb09b 100644
--- a/gcc-4.9/libstdc++-v3/include/std/array
+++ b/gcc-4.9/libstdc++-v3/include/std/array
@@ -48,9 +48,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
{
typedef _Tp _Type[_Nm];
- static constexpr _Tp&
- _S_ref(const _Type& __t, std::size_t __n) noexcept
- { return const_cast<_Tp&>(__t[__n]); }
+ static constexpr _Tp*
+ _S_ptr(const _Type& __t, std::size_t __n) noexcept
+ { return const_cast<_Tp*>(std::__addressof(__t[__n])); }
};
template<typename _Tp>
@@ -58,9 +58,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
{
struct _Type { };
- static constexpr _Tp&
- _S_ref(const _Type&, std::size_t) noexcept
- { return *static_cast<_Tp*>(nullptr); }
+ static constexpr _Tp*
+ _S_ptr(const _Type&, std::size_t) noexcept
+ { return static_cast<_Tp*>(nullptr); }
};
/**
@@ -170,11 +170,11 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
// Element access.
reference
operator[](size_type __n) noexcept
- { return _AT_Type::_S_ref(_M_elems, __n); }
+ { return *_AT_Type::_S_ptr(_M_elems, __n); }
constexpr const_reference
operator[](size_type __n) const noexcept
- { return _AT_Type::_S_ref(_M_elems, __n); }
+ { return *_AT_Type::_S_ptr(_M_elems, __n); }
reference
at(size_type __n)
@@ -183,7 +183,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
std::__throw_out_of_range_fmt(__N("array::at: __n (which is %zu) "
">= _Nm (which is %zu)"),
__n, _Nm);
- return _AT_Type::_S_ref(_M_elems, __n);
+ return *_AT_Type::_S_ptr(_M_elems, __n);
}
constexpr const_reference
@@ -191,11 +191,11 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
{
// Result of conditional expression must be an lvalue so use
// boolean ? lvalue : (throw-expr, lvalue)
- return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n)
+ return __n < _Nm ? *_AT_Type::_S_ptr(_M_elems, __n)
: (std::__throw_out_of_range_fmt(__N("array::at: __n (which is %zu) "
">= _Nm (which is %zu)"),
__n, _Nm),
- _AT_Type::_S_ref(_M_elems, 0));
+ *_AT_Type::_S_ptr(_M_elems, 0));
}
reference
@@ -204,7 +204,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
constexpr const_reference
front() const noexcept
- { return _AT_Type::_S_ref(_M_elems, 0); }
+ { return *_AT_Type::_S_ptr(_M_elems, 0); }
reference
back() noexcept
@@ -213,17 +213,17 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
constexpr const_reference
back() const noexcept
{
- return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1)
- : _AT_Type::_S_ref(_M_elems, 0);
+ return _Nm ? *_AT_Type::_S_ptr(_M_elems, _Nm - 1)
+ : *_AT_Type::_S_ptr(_M_elems, 0);
}
pointer
data() noexcept
- { return std::__addressof(_AT_Type::_S_ref(_M_elems, 0)); }
+ { return _AT_Type::_S_ptr(_M_elems, 0); }
const_pointer
data() const noexcept
- { return std::__addressof(_AT_Type::_S_ref(_M_elems, 0)); }
+ { return _AT_Type::_S_ptr(_M_elems, 0); }
};
// Array comparisons.
@@ -272,8 +272,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
get(array<_Tp, _Nm>& __arr) noexcept
{
static_assert(_Int < _Nm, "index is out of bounds");
- return _GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::
- _S_ref(__arr._M_elems, _Int);
+ return *_GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::
+ _S_ptr(__arr._M_elems, _Int);
}
template<std::size_t _Int, typename _Tp, std::size_t _Nm>
@@ -289,8 +289,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
get(const array<_Tp, _Nm>& __arr) noexcept
{
static_assert(_Int < _Nm, "index is out of bounds");
- return _GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::
- _S_ref(__arr._M_elems, _Int);
+ return *_GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::
+ _S_ptr(__arr._M_elems, _Int);
}
_GLIBCXX_END_NAMESPACE_CONTAINER