There technically is a fee, as well as the usual bid/ask spread, but it's done on a million dollar point spread or greater so on a very bad day it may come out to one or two cents. There isn't a fee on your individual transaction though, but the bank does pay a fee and passes it on.
If you have a CitiGold account, which is really easy to get if you rollover an IRA or have a mortgage with them as they both count towards your deposit total, there's no fees for using foreign ATMs. Most Citi credit cards are similar, as are most Chase.
You can also order currency from your local branches, and on my upcoming cruise (in summer of 2016) to those same countries, we will be picking up about $100 worth of each local currency before going so we will have at least some when we arrive. We're flying through LHR, but I have GBP already and they're very good about taking credit cards.