Remove some difficult to understand C++11 constructs
authorlucasart <lucas.braesch@gmail.com>
Fri, 27 Mar 2015 01:44:57 +0000 (09:44 +0800)
committerJoona Kiiski <joona.kiiski@gmail.com>
Sun, 29 Mar 2015 07:40:24 +0000 (08:40 +0100)
commit60beb18efcb3c19b36a164a50e32b6ba6e24e7c4
tree8afbba342021facb6eb17d3f8bc3fef3205cb5e3
parent8463fa479ee2841f852fdf57374b08c87b61e227
Remove some difficult to understand C++11 constructs

Code like this is more a case of showing off one's C++ knowledge, rather than
using it adequately, IMHO.

**First loop (std::generate)**

Iterators are inadequate here, because they lose the key information which is
idx. As a result, we need to carry a redundant idx variable, and increment it
along the way. Very clumsy.
Usage of std::generate and a lambda function only obfuscate the code, which is
merely a simple and stupid loop over the elements of a vector.

**Second loop (std::accumulate)**

This code is thoroughlly incomprehensible. Restore the original, which was much
simpler to understand.

**Third loop (range based loop)**

Again, a range based loop is inadequate, because we lose idx! To resolve this
artificially created problem, the data model was made redundant (idx is a data
member of db[] elements!?), which is ugly and unjustified. A simple and stupid
for loop with idx does the job much better.

No functional change.

Resolves #313
src/bitbase.cpp