Spaghetti C++arbonara

Beim Imagine Cup Finale in Seoul hatten wir ja nicht nur die großartigen Plazierungen unserer beiden Teams zu feiern, sondern auch Michael's "runden" Geburtstag. Und dort bekam er unter anderen ein wirklich tolles Kochbuch - leider eine Einzelanfertigung - geschenkt; damit er in der Ferne nicht an Hunger leiden muss.

Was mich dabei am meisten begeistert hat? Der Nachweis über die Flexibilität von C++ für die verschiedensten Probelmlösungen - am Beispiel von Spaghetti Carbonara.

#include "kitchen.h"
#include <algorithm>
#include <vector>

int main(int argc, char *argv)
{
std::vector<Onion> onions(2);
std::vector<Bacon> bacons;
while(bacons.weightGram() < 250){
bacons.push_back(Bacon());
}
Kitchen::SouredCream souredCream;
//Kitchen::CremeFraiche souredCream;
std::vector<Kitchen::Egg> eggs(4);
std::vector<Kitchen::GarlicClove> garlicCloves(4);
std::vector<Kitchen::Parmesan> parmesan =
Kitchen::Parmesan::getOne
PieceInVector();

Kitchen::Oregano oregano;
Kitchen::Spaghetti spaghetti;
Kitchen::Salt salt;
Kitchen::Water water;
Kitchen::Bin* pot = new Pot();
Kitchen::Bin* sidePot = new Pot();
Kitchen::Device::Stove stove;

std::for_each(onions.begin(), onions.end(),
Ingredient::ChopFunctor());
stove.add(pot);
stove.getStovetop(pot).setHeat(1.0); // heat range between
// 0.0 and 1.0
sidePot.add(&water);
stove.add(sidePot);
stove.getStovetop(sidePot).setHeat(1.0);
pot->add(&oil);
pot->add(&onions);
stove.getStovetop(pot).setHeat(0.5);
while(onions.getColor() != Color::LightBrown){
pot->stir();
::Sleep(60000);
}
pot->add(&bacon);
pot->stir();
std::for_each(garlicCloves.begin(), garlicCloves.end(),
Ingredient::ChopFunctor());
//... usw. usw. 

 Na dann - Mahlzeit!

ASchabus