boost::arrayのiteratorは、ドキュメント上ポインタであることが明記されていました。
namespace boost { template <typename T, std::size_t N> class array { public: ... typedef T* iterator; typedef const T* const_iterator; ... }; }
Boost 1.49.0 boost::array documentation
C++11のstd::arrayのiteratorは、規格上「implementation-defined(実装定義)」となっているので、環境によってはポインタではないかもしれません。汎用的なコードを書く場合にはご注意を。
namespace std { template <class T, size_t N> struct array { ... typedef implementation-defined iterator; typedef implementation-defined const_iterator; ... }; }