Advertisement
Guest User

Untitled

a guest
Aug 8th, 2022
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.53 KB | None | 0 0
  1. template<typename conv, typename T>
  2. T byteswap(T from, size_t size){
  3.     const size_t INsize = sizeof(*from);
  4.     const size_t convsize = sizeof(conv);
  5.     size_t sizeinbytes = size*INsize;
  6.    
  7.     static_assert(convsize % 2 == 0);
  8.     assert(sizeinbytes % convsize == 0);
  9.    
  10.     uchar *bytearray = reinterpret_cast<uchar*>(from);
  11.    
  12.     for(int i = 0; i < sizeinbytes / convsize; i++)
  13.         for(int j = 0; j < convsize / 2; j++)
  14.             swap(bytearray[i*convsize + j], bytearray[i*convsize + convsize - j - 1]);
  15.    
  16.     return reinterpret_cast<T>(bytearray);
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement