diff options
| author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-07 00:42:19 +0000 |
|---|---|---|
| committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-07 00:42:19 +0000 |
| commit | 2c09be36fe9c507b6b28b91aa205bbd6e4813aa6 (patch) | |
| tree | 741a30909f4921e02c019708ac9d7d15e93ecafe /libstdc++-v3/include/std/array | |
| parent | 24444dcdf7fb164ee3b1498a938015c08fd94f2b (diff) | |
| download | ppe42-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/array | 26 |
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__ |

