Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. int M[5][5] = { {1,3,4,2,5},
  2. {3,5,1,6,2},
  3. {7,5,6,2,0},
  4. {6,2,9,7,6},
  5. {1,0,8,5,2} };
  6.  
  7. int * m2[5];
  8. for(int i=0; i<5; ++i)
  9. m2[i]=M[i];
  10. f(m2);
  11.  
  12. template<unsigned...>struct indexes {};
  13. template<unsigned Max, unsigned...Is>struct make_indexes:make_indexes<Max-1,Max-1,Is...>{};
  14. template<unsigned...Is>struct make_indexes<0,Is...>:indexes<Is...>{};
  15.  
  16. template< class T, std::size_t X, std::size_t Y, unsigned...Is >
  17. std::array<T*, X> as_jagged_helper( T(&arr)[X][Y], indexes<Is...> ) {
  18. return {arr[Is]...};
  19. }
  20.  
  21. template< class T, std::size_t X, std::size_t Y, unsigned...Is >
  22. std::array<T*, X> as_jagged( T(&arr)[X][Y] ) {
  23. return as_jagged_helper(arr, make_indexes<X>());
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement