message: Introduces a `view()` method in axom::Array
  This simplifies the creation of a view for an Array.
diff: #ifndef AXOM_ARRAY_HPP_
  #define AXOM_ARRAY_HPP_
  -#include "axom/config.hpp" // for compile-time defines
  -#include "axom/core/Macros.hpp" // for axom macros
  -#include "axom/core/utilities/Utilities.hpp" // for processAbort()
  -#include "axom/core/Types.hpp" // for IndexType definition
  +#include "axom/config.hpp"
  +#include "axom/core/Macros.hpp"
  +#include "axom/core/utilities/Utilities.hpp"
  +#include "axom/core/Types.hpp"
  #include "axom/core/ArrayBase.hpp"
  #include "axom/core/ArrayIteratorBase.hpp"
  +#include "axom/core/ArrayView.hpp"
  // C/C++ includes
  -#include <algorithm> // for std::transform
  -#include <iostream> // for std::cerr and std::ostream
  +#include <algorithm>
  +#include <iostream>
  namespace axom
  {
  @@ -74,6 +75,8 @@ public:
  static constexpr MemorySpace space = SPACE;
  using ArrayIterator = ArrayIteratorBase<Array<T, DIM, SPACE>>;
  + using ArrayViewType = ArrayView<T, DIM, SPACE>;
  +
  public:
  /// \name Native Storage Array Constructors
  /// @{
  @@ -516,6 +519,18 @@ public:
  */
  int getAllocatorID() const { return m_allocator_id; }
  + /*!
  + * \brief Returns a view of the array
  + * \sa ArrayView
  + */
  + const ArrayViewType view() const { return ArrayViewType(*this); }
  +
  + /*!
  + * \brief Returns a view of the array
  + * \sa ArrayView
  + */
  + ArrayViewType view() { return ArrayViewType(*this); }
  +
  /// @}
  protected:
  