我正在阅读为什么复制构造函数有多个参数?.
接受的答案说:
旧std::basic_string的确有一个:
basic_string(const basic_string& s,
size_type pos = 0, size_type n = npos)
Run Code Online (Sandbox Code Playgroud)
但是http://www.cplusplus.com/reference/string/basic_string/basic_string/说:
basic_string (const basic_string& str, size_type pos, size_type len = npos,
const allocator_type& alloc = allocator_type());
Run Code Online (Sandbox Code Playgroud)
上面不是复制构造函数,而是子串构造函数,它复制str从字符位置开始pos并跨越len字符的部分.
C++标准部分说:
如果X类的第一个参数是X&,const X&,volatile X&或const volatile X&,并且没有其他参数或者所有其他参数都有默认参数,则X类的非模板构造函数是一个复制构造函数
那么,该链接的接受答案是否不正确?这是子串的真正basic_string类构造函数吗?我已经在链接上检查了C++ 98,C++ 11和C++ 14规范中的原型并显示了相同的内容.