As far as I know, it is impossible to expand the array initializer and exclude a recursive template-based solution as a means of generating static initialization data.
However, you can do the simple task of having a static array with as many data points as you ever use. This can be generated by a simple script. Or, for example, using the Boost preprocessor library.
Then you can simply use a pointer to this array.
source share