Хм, с LINQ это еще проще:
var m = from p in parents
select p.member;
или
var m = parents.Select(_ => _.member);
К сожалению, вы не можете писать ленивые перечисления, которые легко из коробки в C ++ ...Не прибегая к внешней библиотеке, вы можете написать «нетерпеливый» селектор (но без локальной лямбды):
std::transform(
parents.begin(), parents.end(),
std::back_inserter(members), [] (const parent& p) -> member {
return p.member;
});