Question: ```
// ((++currentEntry)--) is equivalent to (currentEntry + 1). Kind of.
menuEntries.insert((++currentEntry)--, newEntries.begin(), newEntries.end());

```

So I have the world's worst piece of code here. Is there a better way to do this?

When using '+ 1' I get this:

```
source/menu.cpp:146:37: error: invalid operands to binary expression
      ('list<menuEntry *>::iterator' (aka '_List_iterator<menuEntry *>') and
      'int')
                            menuEntries.insert(currentEntry + 1, ...
                                               ~~~~~~~~~~~~ ^ ~

```

Answer: 
How about a helper function:

```
template<class IterT>
IterT Next(IterT i)
{
  return ++i;
}

```

You could then replace `(++currentEntry)--` by `Next(currentEntry)`

**Edit:**
Or even better: If you use Boost see Rob's suggestion of [next and prior in the Utility library](http://www.boost.org/doc/libs/1_44_0/libs/utility/utility.htm#functions_next_prior)
Since you don't want to affect your currentEntry iterator, and you want to insert the member after currentEntry, currentEntry + 1 is the best bet.