Ich weiß, dass für die folgende Funktionrvalue Referenz oder Weiterleitungsreferenz?
template <typename T>
void do_something(T&& arg);
Die Funktionsparameter eine Weiterleitung Referenz. Aber ist es im folgenden Fall immer noch eine Weiterleitungsreferenz oder eine rvalue-Referenz?
template <typename T>
class MyClass
{
void do_something(T&& arg);
};
Ich denke, es ist immer noch eine Weiterleitung Verweis, aber ich bin mir nicht sicher. Außerdem möchte ich wissen, was getan werden kann, um eine rvalue-Referenz bzw. eine Weiterleitungsreferenz durchzusetzen, wenn das Ergebnis nicht das ist, was ich beabsichtigt habe.
Bedeutet decuced context, dass der Typ automatisch vom übergebenen Argument abgeleitet wird? Wenn ich Sie richtig verstehe, wird T nicht abgeleitet, weil es Teil der Klassensignatur ist. –
@ MartinKalbfuß - Genau. Ein abgeleiteter Kontext ist, wenn Sie die freie Funktionsversion von do_something aufrufen. – StoryTeller