From 7f680ba44d2044f8fb35f57af6288311e7550ad7 Mon Sep 17 00:00:00 2001 From: Robin Schlegel Date: Sun, 28 Jun 2015 11:34:48 +0200 Subject: [PATCH] Improved recommendation to use pre-increment in loops instead of post-increment --- 08-Considering_Performance.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/08-Considering_Performance.md b/08-Considering_Performance.md index b7368f2..505a45c 100644 --- a/08-Considering_Performance.md +++ b/08-Considering_Performance.md @@ -270,12 +270,13 @@ for (int i = 0; i < 15; i++) std::cout << i << '\n'; } - // Good Idea for (int i = 0; i < 15; ++i) { std::cout << i << '\n'; } - ``` +Even if many modern compilers will optimize this two loops to the same assembly code, it is still good practice to prefer `++i`. There is absolutely no reason not to and you can never be certain that your code will not pass a compiler that does not optimize this. +You should be also aware that the compiler will optimize this only for integer types and not for loops with iterators or objects with an overloaded ++operator. +The bottom line is that it is always easier and recommended to use the pre-increment operator if it is semantically identical to the post-increment operator.