From: lucasart Date: Fri, 27 Mar 2015 01:44:57 +0000 (+0800) Subject: Remove some difficult to understand C++11 constructs X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=60beb18efcb3c19b36a164a50e32b6ba6e24e7c4;hp=60beb18efcb3c19b36a164a50e32b6ba6e24e7c4;ds=sidebyside 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 ---