forked from boostorg/array
Two broken compiler fixes (Beman Dawes)
[SVN r7692]
This commit is contained in:
@ -50,8 +50,15 @@ namespace boost {
|
|||||||
const_iterator end() const { return elems+N; }
|
const_iterator end() const { return elems+N; }
|
||||||
|
|
||||||
// reverse iterator support
|
// reverse iterator support
|
||||||
|
# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
||||||
typedef std::reverse_iterator<iterator> reverse_iterator;
|
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||||
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||||
|
# else
|
||||||
|
// workaround for broken reverse_iterator implementations due to no partial specialization
|
||||||
|
typedef std::reverse_iterator<iterator,T> reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
|
||||||
|
# endif
|
||||||
|
|
||||||
reverse_iterator rbegin() { return reverse_iterator(end()); }
|
reverse_iterator rbegin() { return reverse_iterator(end()); }
|
||||||
const_reverse_iterator rbegin() const {
|
const_reverse_iterator rbegin() const {
|
||||||
return const_reverse_iterator(end());
|
return const_reverse_iterator(end());
|
||||||
@ -103,8 +110,10 @@ namespace boost {
|
|||||||
std::fill_n(begin(),size(),value);
|
std::fill_n(begin(),size(),value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
private:
|
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) {
|
static void rangecheck (size_type i) {
|
||||||
if (i >= size()) { throw std::range_error("array"); }
|
if (i >= size()) { throw std::range_error("array"); }
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user