Ich arbeite an dem klassischen Beispiel für perfekte Weiterleitung: der Smart Pointer Maker.Ein Smart Pointer Maker
template<typename T>
//Return a smart pointer on the given objet
shared_ptr<T> smartPointerMaker(T&& arg)
{
return shared_ptr<T>(forward<T>(arg));
}
//In the main...
shared_ptr<int> p = smartPointerMaker(42);
Aber es lässt sich nicht kompilieren und sagte, dass „keine passende Funktion für Aufruf von‚std :: shared_ptr :: shared_ptr (int)‘“
Sie sollten Usin sein g 'T &&' für Weiterleitung und eine elipsis '...' für variadische Vorlagen. – Xarn
Woher hast du dieses Beispiel? Es scheint nichts "Klassisches" zu geben. –
Nun fehlt der 'neue T'-Teil der Erstellung. Im Moment versuchen Sie ein 'std :: shared_ptr' zu erstellen, indem Sie ihm einen int als Argument geben, was offensichtlich nicht funktioniert. –
Xarn