[
https://issues.apache.org/jira/browse/MESOS-4063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Rukletsov updated MESOS-4063:
---------------------------------------
Summary: Add a filter abstraction to stout (was: Add a filter abstraction
to stour)
> Add a filter abstraction to stout
> ---------------------------------
>
> Key: MESOS-4063
> URL: https://issues.apache.org/jira/browse/MESOS-4063
> Project: Mesos
> Issue Type: Wish
> Components: stout
> Reporter: Alexander Rukletsov
> Priority: Minor
> Labels: mesosphere
>
> Consider a simple snippet which filters agents that satisfy a certain
> condition:
> {code}
> foreach (const SlaveID& slaveId, slaveIds_) {
> if (isWhitelisted(slaveId) && slaves[slaveId].activated) {
> slaveIds.push_back(slaveId);
> }
> }
> {code}
> or using modern C++:
> {code}
> std::copy_if(
> slaveIds_.begin(),
> slaveIds_.end(),
> std::back_inserter(slaveIds),
> [this](const SlaveID& slaveId) {
> return (isWhitelisted(slaveId) && slaves[slaveId].activated);
> });
> {code}
> Both approaches are not concise and do not clearly explain what the intention
> is. It would be great to write something like this instead:
> {code}
> std::vector<SlaveID> slaveIDs = stout::filter(
> slaveIDs_,
> [this](const SlaveID& slaveId) {
> return (isWhitelisted(slaveId) && slaves[slaveId].activated);
> });
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)