@griffinboy the SNEX API has three main container types and if you want to use the index template for interpolating / safe access you need to use them. They differ in their ability to change their size dynamically and whether or not they "own" the data:
span: owns the data, compile time size (allocated on creation)
dyn: doesn't own the data, only refers to it
heap: owns the data, but allocates it dynamically
The easiest entry into this would be creating a dyn<T> container with a simple T* pointer and a size. Almost any container in the world will give you access to the raw data. Here's a std::vector<float> example:
std::vector<float> x;
x.push_back(1.0f);
x.push_back(1.0f);
x.push_back(1.0f);
dyn<float> snexContainer(x.data(), x.size());