Verwirrende Titel, hoffentlich einige Code klären:Aufruf von Elementfunktionen von Elementen eines Containers mit for_each?
struct MyNestedType {
void func();
};
struct MyType {
MyNestedType* nested;
}
std::vector<MyType> vec;
// ... populate vec
// I want something approximating this line, but that doesn't use made-up C++!
std::for_each(vec.begin(), vec.end(), std::mem_fun_ref(&MyType::nested->func));
Also im Grunde möchte ich auf jedem Element des Behälters, ein Verfahren nennen, aber es ist nicht wirklich ein Verfahren des Typs, dann ist es eine Methode auf einem enthaltenen Typ ... Ich weiß, ich könnte ein Funktionsobjekt schreiben, um den Anruf weiterzuleiten, aber es gibt ein paar Methoden, die ich anrufen möchte, und das wird unordentlich.
Irgendwelche Ideen?
Brilliant, das ist genau die Antwort, auf die ich gehofft hatte, obwohl einige der anderen Kommentare mich denken ließen, dass ich vielleicht nach dem Falschen suchte;) –
Gute Antwort, du hast geahnt, dass Ben sowohl die Methode als auch das Nested parametrisieren wollte Mitglied Objekt, obwohl es nicht angegeben wurde. – veefu
Keine Notwendigkeit, snarky zu sein. Wäre es klarer gewesen, wenn ich "& MyType :: nested :: MyNestedType :: func" anstelle von "& MyType :: nested-> func" geschrieben hätte? Ich dachte, ich würde die Grenzen von Pseudo-C++ verschieben, wie es war! –