On 26 August 2011 20:57, Alexander Eberspächer alex.eberspaecher@gmail.com wrote:
Dear Lex, dear list,
On Fri, 26 Aug 2011 20:39:38 +1000 Lex Trotman elextr@gmail.com wrote:
My 0.5c worth, in C++ it is important to pre-increment unless you really need the previous value since post increment could create a wasted expensive copy of an object. Although an int isn't expensive, it is probably better to make it ++i in the for loop so it agrees with the usual idiom.
I changed that for C++ (revised patch attached).
Now that we go into details, let's briefly discuss assumptions being made by those snippets:
The snippets for the loops assume that the counting variable is shall be i.
Thats traditional...
Furthermore, it is assumed that i was not declared before.
For C++ its fine to re-declare i within the loop, it will hide any external declaration.
This
seems to work for most people, however, I personally would opt for completion of
"do"
to
"for (%cursor%) {
}"
Thats a bit counter-intuitive since there is a do statement, and it is post tested rather than pre-tested like for. Maybe use something else for for two (pun intended :) or change the original
In C++ it is more common than in C to use other loop operations (eg iterators) not just simple counters, so maybe the blank version would be better as the main for entry for C++.
In this case, the name of the counting variable is to be filled in by the user (I left that decision to the user in the Fortan snippets, too [1]). Changing the snippets towards less assumptions changes Geany's default behaviour.
Maybe you should preserve default behavior on the basis that someone decided it to be that way, unless you know no one cares.
For C++ IIUC it just works like C because thats what Geany is written in.
So, what do we want here? Anyone else +1 for less assumptions about what the user wants?
Cheers
Alex
[1] Considering that Fortran is mostly used in scientific computing, I think it is reasonable to assume that `i` is not the variable the user wants to loop over.
I dunno, all the sigmas I remember used i & j, and in original fortran all variables starting with i to n were integers, so again tradition has it to use i,j,k,l,m,n.
Cheers Lex
PS You seem to have got a copy of the for entry tacked on to the end of the switch snippet for C++ & C# PPS there seem to be line breaks in some entries, (eg switch) entries must be on one line