Best syntax for executing an action between each loop iteration.
The closest I've come to this in C or C++ is a slight modification to Knuth's loop-and-a-half:

template&lt;class T&gt;
void print(std::vector&lt;T&gt; const &amp;x) {
  std::cout &lt;&lt; '[';
  typename std::vector&lt;T&gt;::const_iterator
    begin = x.begin(),
    end = x.end();
  if (begin != end) {  // Duplicated condition to handle the empty case.
    while (true) {  // Here is the "loop and a half".
      std::cout &lt;&lt; *begin;
      if (++begin == end) break;
      std::cout &lt;&lt; ", ";
    }
  }
  std::cout &lt;&lt; "]\n";
}


C++0x allows you to generalize:

template&lt;class Iter, class Body, class Between&gt;
void foreach(Iter begin, Iter end, Body body, Between between) {
  if (begin != end) {  // This duplication doesn't matter as it is
                       // wrapped up in a library function.
    while (true) {
      body(*begin);
      if (++begin == end) break;
      between();
    }
  }
}

template&lt;class T&gt;
void print(std::vector&lt;T&gt; const &amp;x) {
  std::cout &lt;&lt; '[';
  foreach(x.begin(), x.end(),
    [](T const&amp; v) {
      std::cout &lt;&lt; v;
      // Long code here is still readable.
    },
    []{
      std::cout &lt;&lt; ", ";
      // Long code here is still readable.
    });
  std::cout &lt;&lt; "]\n";
}


Lambda capture even allows you to modify local variables in the function calling foreach.