From N3290, [container.requirements.general]:
The expression a.swap(b), for containers a and b of a standard container type other than
a.swap(b)
(Reposting from comment)
std::string is not a container – the fact that basic_string is not described in the Containers library chapter (§23) of the FDIS is a good clue. ;-]
std::string
basic_string
Containers library