dimanche 24 juillet 2016

extract an array from another array at compile time using c++

Not sure if it's possible for more later version of c++. (I can't figure out using traditional c++ to achieve the following behaviofgr.)

For example,

If I have an array defined like this:

In the header file

struct Def {
  static const int N = 5;
  static const double data[N];
};

In its cpp

const double Def::data[Def::N] = {0,1,2,3,4};

Is it possible to have a template get_subarray such that

get_subarray<Def,2,0>::data will be an array of content {0,2,4}

get_subarray<Def,2,1>::data will be an array of content {1,3}

where

template<typename T, int M, int m>
struct get_phase {
    // some code for the array variable data which will 
    // extract element from T::data for every M sample offset by index m
};

Aucun commentaire:

Enregistrer un commentaire