Recently had a discussion and challenge in comparing two languages, C++ and Python. I think modern C++ is holds up really well to so-called scripting languages to do quick and dirty utility programs. This is a reasonably short implementation of a prime number finder:
#include <cstdio> inline bool prime(const auto _candidate, const auto *_first, const auto *_last) { for (auto p = _first; p != _last && *p * *p <= _candidate; ++p) if (_candidate % *p == 0) return false; return true; } int main(int _c, char** _v) { const unsigned num_primes = 10000; static unsigned primes[num_primes] = {2, 3}; for (unsigned i = 2; i < num_primes; ++i) for (primes[i] = primes[i-1] + 2; !prime(primes[i], primes + 1, primes + i); primes[i] += 2); printf("The %uth prime is: %u.n", num_primes, primes[num_primes - 1]); return 0; }
Several things. Mostly I’ve learned to re-embrace the spirit of C/C++ for brevity, such as single statement if and for blocks. But you really have to think about readability when you code in that style. The brief C style is only bad if it’s done without consideration about code aesthetics. The brief style shouldn’t be about reducing line count, but about increasing readability. It is a bit counter-intuitive coming from a university education that told you to put every if block in braces over multiple lines.
When coded in such a manner, modern C++ can approach the ease of writing that languages like Python enjoy.