mirror of
https://github.com/cpp-best-practices/cppbestpractices.git
synced 2025-12-17 11:14:35 +03:00
Minor wording changes to iterator discussion
@rob100 I changed the wording about iterators and `++` because many iterator types are just internally a `++pointer` and the compiler *is* able to optimize it to the same level as `++int`. But that's not guaranteed to be true. Closes #19
This commit is contained in:
@@ -276,7 +276,8 @@ 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.
|
||||
|
||||
Even if many modern compilers will optimize these 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 not be able optimize this only for integer types and not necessarily for all iterator or other user defined types.
|
||||
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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user