From e4ca9354abd7848dc11cba80a9ec1c5c69b9424a Mon Sep 17 00:00:00 2001 From: Beman Dawes Date: Fri, 1 Sep 2000 15:49:53 +0000 Subject: [PATCH] Two broken compiler fixes (Beman Dawes) [SVN r7692] --- include/boost/array.hpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/include/boost/array.hpp b/include/boost/array.hpp index eb32cb7..31cc861 100644 --- a/include/boost/array.hpp +++ b/include/boost/array.hpp @@ -50,8 +50,15 @@ namespace boost { const_iterator end() const { return elems+N; } // reverse iterator support +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) typedef std::reverse_iterator reverse_iterator; typedef std::reverse_iterator const_reverse_iterator; +# else + // workaround for broken reverse_iterator implementations due to no partial specialization + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +# endif + reverse_iterator rbegin() { return reverse_iterator(end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); @@ -103,8 +110,10 @@ namespace boost { std::fill_n(begin(),size(),value); } +# ifndef BOOST_NO_PRIVATE_IN_AGGREGATE private: - // check range (may be private because it is static) +# endif + // private member functions are allowed in aggregates [ISO 8.5.1] static void rangecheck (size_type i) { if (i >= size()) { throw std::range_error("array"); } }