On 12. Jul 2007, at 19:19, Chris Thomas wrote:

- <string>for( ${1:unsigned int} ${2:i} = ${3:0}; ${2:i} &lt; ${4:count}; ${2:i} += ${5:1} )
+       <string>for(size_t ${2:i} = 0; $2 &lt; ${1:count}; ${3:++$2})

This change didn't show up for me until now (strange, because other recent changes did).
It diminishes the value of the for loop snippet considerably, IMO:

- A size_t makes sense for looping over byte arrays in primarily- stdio code, but for nothing else. Can we resnippetize the variable type?

I am not sure I follow you.

    len = strlen(foo);
    len = sizeof(byte_array);
len = sizeofA(array); // a macro (in c.h) for sizeof(array)/ sizeof(*array)

Here len would be size_t (if given the type of the expression), so it seems like size_t is a good choice for an index variable (given how size_t is used to express the size of a string or object, and the index variable goes from zero to that size).

- Any use of ++ is bad practice, it makes the variable value undefined anywhere else in the current expression. This is not a fun bug to track down when you get bitten by it.

This is in general code like:

    foo(i++, i);

Right?

- Use of prefix ++ here looks weird.

Yeah -- I use prefix ++ for symmetry with ++it used in STL code (where ‘it’ is a complex type, and thus post-increment has the overhead of returning a copy from before the increment, plus for custom types, I generally don’t bother implementing post-increment).

I am fine with moving to post-increment. I would like a bit more justification for the other two changes.


_______________________________________________
textmate-dev mailing list
[email protected]
http://lists.macromates.com/mailman/listinfo/textmate-dev

Reply via email to