I often want to express intent of this sort...

struct X {...};
void f( X & );

X my_array[3][6][11];

for (unsigned i=0;i!=3;++i)
  for(unsigned j=0;j!=6;++j)
    for(unsigned k=0;k!=11;++k)
      f( my_array[i][j][k] );

Apart from all the grottiness on hardcoded sizes and
loop indices, which is just for exposition, is there
a nice idiom in boost to do traversals over multiple
indices in this way, or perhaps multiple ranges?

Thanks, Rob.