Go to the documentation of this file.00001
00009 #ifndef ARRAY_MASK_HH
00010 #define ARRAY_MASK_HH
00011 #include"next.hh"
00012 #include"binomial.hh"
00013
00014 namespace mask{
00015
00016
00024 template<unsigned int N, unsigned int K, unsigned int I>
00025 struct ArrayMask{
00026 static const unsigned int val = I < Binomial<N,K>::val ? Next<ArrayMask<N,K,I-1>::val>::val : 0 ;
00027 };
00028
00030 template<unsigned int N, unsigned int K>
00031 struct ArrayMask<N,K,0>{
00032 static const unsigned int val = IntervalMask<0,K>::val;
00033 };
00034
00035 }
00036
00037 #endif //ARRAY_MASK_HH