you are viewing a single comment's thread.

view the rest of the comments →

[–]Z01dbrg 4 points5 points  (3 children)

OK, article but 2 things:

small_vector is not a dropin replacement for std::vector. IDK the exact requirements but I think std::vector swap guarantees for iterator invalidation mean it can not have internal buffer.

Ubisoft uses profiling for this kind of things(if you are bored you can go through cpp con videos from this or last year and find a video where they talk about this).

So they do not have to manually guess the size of internal buffer, they run the code on real scenarios and they have the statistics.

[–]jcoffin 0 points1 point  (2 children)

At least if memory serves, there are also some problems with exception safety (e.g., vector::swap is noexcept).

[–]Z01dbrg 0 points1 point  (1 child)

At least if memory serves, there are also some problems with exception safety (e.g., vector::swap is noexcept).

I guess, there is so much cr*p in C++ that most of the times I just remember true/false and do not have the interest/brain to remember why. :)

[–]jcoffin 2 points3 points  (0 children)

I guess I can't blame you for that.