Dynamic memory doesn't win in this situation.
template< const int i_Elements > class myClass
{
private:
unsigned long myVector [ i_Elements ];
public:
myClass(){};
};
To start off with,
No SRAM is used storing the count of elements as the object is explicitly bound to i_Elements value.
No new and delete operators are required.
No destructor is required due to automatic variable destruction.
Almost exactly the same, just doing it in 0 lines of code.