Template class used in C++ for the targets of vector or matrix arguments.
For each vector or matrix argument to an add-in function, a local container variable is declared, and the input is copied into it after validation. If the argument's ContainerClass property is set, then the container will be of the type specified by the property. However, if the argument's container class property is left empty (the default), then the container class used will be that specified by DefaultVectorContainer or DefaultMatrixContainer as appropriate.
There are two varieties of notation for specifying a container class.
Template class for T
The class name is a C++ template class, with the letter
T
representing the scalar type.
Thus, if you specify std::vector<T>
for
a vector of type Double
, the generated container
class will be std::vector<double>
.
Template arguments other than T will be left unchanged.
Thus a container class boost::multi_array<T, 2>
for a numeric vector will be expanded to:
boost::multi_array<double, 2>
.
Concrete class
The class name is a C++ class, with no template arguments.
If you specify MyStringVector
for a string vector,
the generated class will simply be MyStringVector
.
A concrete container class must be capable of containing
items of the specified type.
If you specify MyStringVector
for a numeric vector,
the generated class will still be MyStringVector
,
and your code will probably not compile.