Я недавно прочитал это , в котором говорится:
Не думайте, что сложный код обязательно быстрее простого.
Код копируется следующим образом:
Пример, хорошо
// clear expression of intent, fast execution
vector<uint8_t> v(100000);
for (auto& c : v)
c = ~c;
Пример, плохо
// intended to be faster, but is often slower
vector<uint8_t> v(100000);
for (size_t i = 0; i < v.size(); i += sizeof(uint64_t)) {
uint64_t& quad_word = *reinterpret_cast<uint64_t*>(&v[i]);
quad_word = ~quad_word;
}
И я не уверен, в чем цель плохого примера, почему он должен быть быстрее?