Hi again,
It is funny that with fully dynamic strings, the copy constructor is "better" than the move constructor: faster, doesn't throw, etc. I think we should remove the move constructor in that case, or at least make it act the same as the copy constructor. I didn't mark the copy constructor as noexcept, but without checking the code it seems likely we could.
We could, but in my opinion fiddling with those isn't worth the trouble, because the whole "fully dynamic string" thing is just a workaround for issues of the current reference counted implementation vs the statically allocated empty string on some targets.
Well, I have a second (practical) thought about this part. If you are willing to spend a little more time on this, and can confirm your preliminary analysis about copy-constructor vs move-constructor, first blush it definitely makes sense to me, I'm certainly not against your proposal of having the move-constructor identical to the copy-constructor in that case. In 4.9.x some targets, not Linux, would benefit from it.

Thanks,
Paolo.

Reply via email to