On Aug 30, 2013, at 9:48 PM, Simon Horman <[email protected]> wrote:
> On Fri, Aug 30, 2013 at 01:40:16PM -0700, Jarno Rajahalme wrote:
>> + LIST_FOR_EACH(bucket, list_node, &gm->buckets) {
>> + ++n_buckets;
>
> Any reason you favour a pre-increment over a post-increment.
> I realise it makes no difference to the logic here but I am curious.
>
I guess it is a habit that stuck after writing some C++ iterators. With more
complex types post-increment is costly, as it requires a copy of the original
value to be made before the increment, so that the value before the increment
can be returned as the value of the operation. Pre-increment is semantically
simpler, as it returns the value after the increment and no copies are needed.
I guess compilers can easily eliminate unneeded copies in most cases,
especially whenever the iterator code gets inlined.
Besides, I just spent some time last week debugging a post-increment bug I made
by assigning the value to another variable without being mindful of the fact
that the statement that assigned from was a POST-increment, while I was
thinking to having had assigned the incremented value.
Jarno
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev