mattallen37:
Thanks for the reply.Neither of those are ideal, but probably possible.
Are there other options?
no, not really. If you're passing an array anyway, might as well pass the length. After all, when you pass an array it just says "the memory you want is here:" That's it, so your options are limited.
You could also make something like there is in java:
template<class T, size_t len> struct ary {
T& operator[](size_t i) { return data[i]; }
size_t length;
T data[len];
};