You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Alexander Rukletsov (JIRA)" <ji...@apache.org> on 2015/12/03 22:32:11 UTC

[jira] [Updated] (MESOS-4063) Add a filter abstraction to stout

     [ 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)