I was actually using an array over a vector because the size of inStats is pre-determined and will never change, so I don't need the functionality of a vector. Is there another way to bass by const ref other than templating?
First note that in your code it is is passing the array as a pointer so there is no overhead. If you want pass the array by reference you can do as Cubbi has shown. If you don't want to use templates you can just write CharacterImpl(const std::string& inName, constint (&inStats)[N])
and replace N with the size of the array.
Passing an array is just the same as passing a pointer: your array will not copy if it is what you fear.
When you write CharacterImpl(const std::string& inName, constint& inStats[]); you are actually saying inStats is an array or reference which is impossible.
As an information, c++11 has introduced the new class std::array which is a fixed size array, you can use it as follow:
That's the information that I was looking for, thanks. Unfortunately, as I'm developing this in conjunction with a partner that has only the C++98 standard, I have to stay away from the snazzy new C++11 features, but I'll be sure to keep that syntax in mind for my future projects.