MultiArray: a C++ library for generic programming with arrays

  • Authors:
  • Ronald Garcia;Andrew Lumsdaine

  • Affiliations:
  • Open Systems Lab, Indiana University, Bloomington, IN 47405, U.S.A.;Open Systems Lab, Indiana University, Bloomington, IN 47405, U.S.A.

  • Venue:
  • Software—Practice & Experience - Research Articles
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

In C++, multi-dimensional arrays are often used but the language provides limited native support for them. The language, in its Standard Library, supplies sophisticated interfaces for manipulating sequential data, but relies on its bare-bones C heritage for arrays. The MultiArray library, a part of the Boost library collection, enhances a C++ programmer's tool set with versatile multi-dimensional array abstractions. It includes a general array class template and native array adaptors that support idiomatic array operations and interoperate with C++ Standard Library containers and algorithms. The arrays share a common interface, expressed as a generic programming concept, in terms of which generic array algorithms can be implemented. We present the library design, introduce a generic interface for array programming, demonstrate how the arrays integrate with the C++ Standard Library, and discuss the essential aspects of their implementation. Copyright © 2004 John Wiley & Sons, Ltd.