$12.8/2 - \'A non-template constructor for class X is a copy constructor if its first parameter is of type X&, const X&, volatile X& or const
The old std::basic_string does have one too:
std::basic_string
basic_string(const basic_string& s, size_type pos = 0, size_type n = npos)