Измените свой класс BubbleUpdater, чтобы он принимал аргумент по ссылке
struct BubbleUpdater {
void operator()(Bubble & b) { b.Update(); }
} updater;
При этом ваш звонок на std::for_each
должен работать.
Если ваш компилятор поддерживает это (а VC10 поддерживает), тогда вы можете использовать лямбда-выражения вместо создания класса объектов удаленной функции. И да, это стандартный с ++, или скоро будет достаточно.
std::for_each (bubbles.begin(), bubbles.end(), [](Bubble & b){
b.Update();
});