Curring magic

This commit is contained in:
2025-03-10 21:04:58 +01:00
parent a3c34ab6bc
commit b0056c9004
16 changed files with 296 additions and 44 deletions

View File

@ -7,20 +7,23 @@
#include "../model/Building.h"
#include <algorithm>
#include <execution>
#include <iostream>
#include <vector>
void Surplus::CalculateSurplus(std::vector<std::shared_ptr<Community>> &communities) {
void Surplus::CalculateSurplus(std::vector<std::unique_ptr<Community>>& communities) {
std::vector<float> consumptionAvailable(VALUE_COUNT, 0.0);
std::vector<float> generationAvailable(VALUE_COUNT, 0.0);
Community::iterateCommunities(communities, [&](const std::shared_ptr<Community>& community) {
auto &buildings = community->buildings();
Building::Base::iterateBuildings(buildings, [&](Building::Base &building) {
CalculateBuildingSurplus(building);
});
});
auto iterateFunc = Community::iterateBuildings(communities);
auto modifyCommunity = [](Community& c) {
std::cout << "Processing Community\n";
};
auto modifyBuilding = [](Building::Base& building) {
std::cout << "Processing Building\n";
CalculateBuildingSurplus(building);
};
auto nestedFunc = iterateFunc(modifyCommunity);
nestedFunc(modifyBuilding);
}
void Surplus::CalculateBuildingSurplus(Building::Base& building) {