Removed all for loops from the profile manager

This commit is contained in:
David Marcec 2018-08-11 20:15:59 +10:00
parent c3013c7c9c
commit 662218e997

View File

@ -141,20 +141,15 @@ void ProfileManager::CloseUser(UUID uuid) {
std::array<UUID, MAX_USERS> ProfileManager::GetAllUsers() const {
std::array<UUID, MAX_USERS> output;
for (unsigned i = 0; i < user_count; i++) {
output[i] = profiles[i].user_uuid;
}
std::transform(profiles.begin(), profiles.end(), output.begin(),
[](const ProfileInfo& p) { return p.user_uuid; });
return output;
}
std::array<UUID, MAX_USERS> ProfileManager::GetOpenUsers() const {
std::array<UUID, MAX_USERS> output;
unsigned user_idx = 0;
for (unsigned i = 0; i < user_count; i++) {
if (profiles[i].is_open) {
output[i++] = profiles[i].user_uuid;
}
}
std::copy_if(profiles.begin(), profiles.end(), output.begin(),
[](const ProfileInfo& p) { return p.is_open; });
return output;
}