#include <cstddef>
#include <stdexcept>
#include <boost/assert.hpp>
+#include <boost/swap.hpp>
// Handles broken standard libraries better than <iterator>
#include <boost/detail/iterator.hpp>
// swap (note: linear complexity)
void swap (array<T,N>& y) {
- std::swap_ranges(begin(),end(),y.begin());
+ for (size_type i = 0; i < N; ++i)
+ boost::swap(elems[i],y.elems[i]);
}
// direct access to data (read-only)
}
// operator[]
- reference operator[](size_type i)
+ reference operator[](size_type /*i*/)
{
return failed_rangecheck();
}
- const_reference operator[](size_type i) const
+ const_reference operator[](size_type /*i*/) const
{
return failed_rangecheck();
}
// at() with range check
- reference at(size_type i) { return failed_rangecheck(); }
- const_reference at(size_type i) const { return failed_rangecheck(); }
+ reference at(size_type /*i*/) { return failed_rangecheck(); }
+ const_reference at(size_type /*i*/) const { return failed_rangecheck(); }
// front() and back()
reference front()
static size_type max_size() { return 0; }
enum { static_size = 0 };
- void swap (array<T,0>& y) {
+ void swap (array<T,0>& /*y*/) {
}
// direct access to data (read-only)