Function Formal parameters

can we assume that

  for(Function::aiterator I = F.abegin(); E = F.aend(); I!=E; ++I) {
   ....
  }

or

  Argument *FA = &F.afront();
  do {
    FA = FA->getNext();
    ....
  } while (FA != &F.aback());

would iterate over function "F" formal parameters in order? All the
tests I've run so far indicate so, but unless it is guaranteed, I
don't see how can I match formal and actual parameters for a function.

can we assume that
  for(Function::aiterator I = F.abegin(); E = F.aend(); I!=E; ++I) {

...

would iterate over function "F" formal parameters in order? All the
tests I've run so far indicate so, but unless it is guaranteed, I
don't see how can I match formal and actual parameters for a function.

Yup, that's guaranteed. Note that the first form is certainly more
idiomatic C++, so please don't do the second one...

-Chris