Ich versuche, eine statische Funktion für ein Element eines Vektors innerhalb einer Template-Funktion aufzurufen. Aber ich kann den Code nicht funktionieren. Ich bekomme den Fehler: "Do" ist kein Mitglied von "__gnu_cxx :: __ alloc_traits" :: value_type & {aka A &} 'Irgendwelche Ideen?Aufruf der Klassenfunktion auf dem Vorlagenelement
struct A {
static void Do() { cout << "Hey.\n"; }
};
template <typename T>
void foo(T* v) {
decltype(v->at(0))::Do();
}
int main() {
vector<A> v;
foo(&v);
return 0;
}
OK, das wurde hier beantwortet: https://stackoverflow.com/questions/44189845/stdvector-insert-without-nowing-the-type-of-the-elements?noredirect=1#comment75393783_44189845 –
also warum fragst du dies, wenn Sie Ihre vorherige Frage (40 Minuten früher) auch eine gültige Antwort auf diese erhalten? Eigentlich von derselben Person, die hier wieder antwortet. – Walter