Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename conv, typename T>
- T byteswap(T from, size_t size){
- const size_t INsize = sizeof(*from);
- const size_t convsize = sizeof(conv);
- size_t sizeinbytes = size*INsize;
- static_assert(convsize % 2 == 0);
- assert(sizeinbytes % convsize == 0);
- uchar *bytearray = reinterpret_cast<uchar*>(from);
- for(int i = 0; i < sizeinbytes / convsize; i++)
- for(int j = 0; j < convsize / 2; j++)
- swap(bytearray[i*convsize + j], bytearray[i*convsize + convsize - j - 1]);
- return reinterpret_cast<T>(bytearray);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement