今天看代码的时候看到的,研究了一下,分享给大家。
template<size_t T>
inline void convert(char *val)
{
std::swap(*val, *(val + T - 1));
convert<T - 2>(val + 1);
}
template<> inline void convert<0>(char *val) {}
template<> inline void convert<1>(char *val) {} // ignore central byte