XLL+ Class Library (7.0)

matrix<T> Class

Container for two-dimensional arrays of type T (deprecated).

class matrix<T>


This class is now deprecated, and has been replaced by the more powerful classes descended from imtx<T>.

It is included for the benefit of code written with earlier versions (4.1 and below) of XLL+.


The matrix template is a container for two-dimensional arrays of type T. You can use them to read in arrays of numbers or strings from Excel OPER and XLOPER arguments passed to your add-in functions.

As well as saving programming time, the class offers three advantages over writing your own code to read array inputs:

  • Safety
    The class has methods to check for valid inputs while reading in arrays.
  • Memory management
    The import methods automatically allocate sufficient memory to contain the input. The destructor automatically frees it, reducing the risk of memory leaks.
  • Efficiency
    The class methods and supporting functions are written close to the 'C' structures
  • The class also contains methods and operators that make it convenient to pass values to functions expecting arrays of type T. See the Tutorial for further examples of using matrix<T>.


    Data is always stored with columns together. The table below show the offsets of the items in a 3 row x 4 column array.

      0 1 2 3
    Rows 0 Offset = 0 Offset = 3 Offset = 6 Offset = 9
      Offset = 1 Offset = 1 Offset = 4 Offset = 7 Offset = 10
      Offset = 2 Offset = 2 Offset = 5 Offset = 8 Offset = 11

    Programming note

    You will notice that the naming conventions of matrix<T> differ from other XLL+ objects: the class is named after the conventions of the STL collection templates, and is expected to be used in conjunction with vector<T>.


    Header: matrix.h

    See Also

    matrix<T> Methods | matrix.h | imtx<T>