You could use std::swap(*pStart, *pEnd) instead of open-coding swap. Heck, you could just use std:: rever ...
stackoverflow.com