7 comments

[ 2.3 ms ] story [ 27.0 ms ] thread
(comment deleted)
I'd use std::memset and have something that works without needing a benchmark to detect obscure template quirks.
I agree. Why go through the extra loops? Keep it simple.
std::memset only works for sequential and contiguous memory. std::fill works on pretty much anything that has std::begin() and std::end().

As the conclusion of the article says I would use the idiomatic way first, then and only if I have performance issues, actually force it to memset.

The only bad thing here is that, gcc only do the reasonable optimization on '-O3'.

(comment deleted)
Well, if it's optimised out at "-O3", I usually don't care. If you have some numerical code you can optimise further (even though you're using "-O3" or "-ffast-math"), things become interesting!