是否实际上保证了以下降低能力陷阱“工作”?
int main() {
std::string s = "lololololol";
s = ""; // capacity still non-zero
string(s).swap(s); // ?
}
对我来说,“工作”似乎只是“工作”(因为能力仍然是非零),我可以发现标准中的任何内容,即“参与者”必须在两个[相同]物体之间交换。
同样,关于序列集装箱:
int main() {
vector<int> v { 1,2,3,4,5 };
v.clear(); // capacity still non-zero
vector<int>(v).swap(v); // ?
}
As far as I m aware, this "trick" is semi-widely used; perhaps this widespread adoption is misguided?
<>up>(课程,C++11,我们有shrink_to_fit
[尽管不具约束力],但还是使这种模糊不清。