<p>I only just recently discovered that Visual C++ 2008 (and perhaps earlier versions as well?) supports <code>for each</code> syntax on stl lists et al to facilitate iteration.
For example:</p>

<pre><code>list&lt;Object&gt; myList;

for each (Object o in myList)
{
  o.foo();
}
</code></pre>

<p>I was very happy to discover it, but I'm concerned about portability for the dreaded day when someone decides I need to be able to compile my code in say, gcc or some other compiler. Is this syntax widely supported and can I use it without worrying about portability issues?</p>

For each is not standard C or C++ syntax. If you want to be able to compile this code in gcc or g++, you will need to create an iterator and use a standard for loop.
QuantumPete
[edit]
This seems to be a new feature introduced into MS Visual C++, so this is definitely not portable. Ref:
http://msdn.microsoft.com/en-us/library/xey702bw%28VS.80%29.aspx
[/edit]