What is the proper way to do a C# LINQ Where/Select in C++?
c#, c++, linq
Solution
In C++11, using boost you can do something like this:
// assumming myObjectList is a vector of someObj type
std::vector<someObj> myObjectList = { ... };
auto result = myObjectList | boost::adaptors::filtered([](const someObj& x) { return x.isSomething(); });
std::vector<someObj> anotherMyObjectList(boost::begin(result), boost::end(result));
Problem
In C#, if I have a List of objects (e.g. List myObjectList), I can get a subset of that list via: ``` anotherMyObjectList = myObjectList.Where(x => x.isSomething()).Select(x => x).ToList(); ``` Assuming I don't want to use a 3rd party C++ LINQ library (only standard library and maybe boost), what's the best way to do this in C++? It would be easy to write a function for each instance where I want to do this, but it would be better to know what framework exists to perform this type of operation. If the answer is different in C++98, C++0x or C++11, it would be good to know the differences.