summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/std/array
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-07 00:42:19 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-07 00:42:19 +0000
commit2c09be36fe9c507b6b28b91aa205bbd6e4813aa6 (patch)
tree741a30909f4921e02c019708ac9d7d15e93ecafe /libstdc++-v3/include/std/array
parent24444dcdf7fb164ee3b1498a938015c08fd94f2b (diff)
downloadppe42-gcc-2c09be36fe9c507b6b28b91aa205bbd6e4813aa6.tar.gz
ppe42-gcc-2c09be36fe9c507b6b28b91aa205bbd6e4813aa6.zip
2012-11-06 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51850 * include/debug/array: New, debug-mode implementation. * include/profile/array: New. * include/std/array: Adjust. * include/std/tuple: Just include <array>. * include/Makefile.am: Add. * include/Makefile.in: Regenerate. * testsuite/23_containers/array/debug/front1_neg.cc: New. * testsuite/23_containers/array/debug/ square_brackets_operator1_neg.cc: Likewise. * testsuite/23_containers/array/debug/front2_neg.cc: Likewise. * testsuite/23_containers/array/debug/ square_brackets_operator2_neg.cc: Likewise. * testsuite/23_containers/array/debug/back1_neg.cc: Likewise. * testsuite/23_containers/array/debug/back2_neg.cc: Likewise. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Tweak to run only in normal-mode. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: Likewise. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: New. * testsuite/23_containers/array/tuple_interface/ tuple_element_debug_neg.cc: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193278 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/std/array')
-rw-r--r--libstdc++-v3/include/std/array26
1 files changed, 18 insertions, 8 deletions
diff --git a/libstdc++-v3/include/std/array b/libstdc++-v3/include/std/array
index 15dd6c13222..f83baa75ccc 100644
--- a/libstdc++-v3/include/std/array
+++ b/libstdc++-v3/include/std/array
@@ -41,7 +41,7 @@
namespace std _GLIBCXX_VISIBILITY(default)
{
-_GLIBCXX_BEGIN_NAMESPACE_VERSION
+_GLIBCXX_BEGIN_NAMESPACE_CONTAINER
template<typename _Tp, std::size_t _Nm>
struct __array_traits
@@ -93,8 +93,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// Support for zero-sized arrays mandatory.
- typedef std::__array_traits<_Tp, _Nm> _AT_Type;
- typename _AT_Type::_Type _M_elems;
+ typedef _GLIBCXX_STD_C::__array_traits<_Tp, _Nm> _AT_Type;
+ typename _AT_Type::_Type _M_elems;
// No explicit construct/copy/destroy for aggregate type.
@@ -210,7 +210,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
back() const
{
return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1)
- : _AT_Type::_S_ref(_M_elems, _Nm);
+ : _AT_Type::_S_ref(_M_elems, 0);
}
pointer
@@ -289,7 +289,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
get(array<_Tp, _Nm>& __arr) noexcept
{
static_assert(_Int < _Nm, "index is out of bounds");
- return std::__array_traits<_Tp, _Nm>::_S_ref(__arr._M_elems, _Int);
+ return _GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::
+ _S_ref(__arr._M_elems, _Int);
}
template<std::size_t _Int, typename _Tp, std::size_t _Nm>
@@ -305,11 +306,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
get(const array<_Tp, _Nm>& __arr) noexcept
{
static_assert(_Int < _Nm, "index is out of bounds");
- return std::__array_traits<_Tp, _Nm>::_S_ref(__arr._M_elems, _Int);
+ return _GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::
+ _S_ref(__arr._M_elems, _Int);
}
-_GLIBCXX_END_NAMESPACE_VERSION
-} // namespace
+_GLIBCXX_END_NAMESPACE_CONTAINER
+} // namespace std
+
+#ifdef _GLIBCXX_DEBUG
+# include <debug/array>
+#endif
+
+#ifdef _GLIBCXX_PROFILE
+# include <profile/array>
+#endif
#endif // __GXX_EXPERIMENTAL_CXX0X__
OpenPOWER on IntegriCloud