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: 
Why not split into multiple lines:

```
iterator nextEntry = currentEntry;
menuEntries.insert( ++nextEntry, newEntries.begin(), newEntries.end());

```

where `iterator` is iterator type for the list. Personally, I would probably pull the `++nextEntry` onto its own line for further clarity - but that is probably a subjective decision.
You can use reverse iterators, for example:

```
myList.insert(myList.rbegin(), newEntries.begin(), newEntries.end())

```

would add the new items to the end.

Of course, whether this works for you depends on how you are using your iterator.