Von was ich verstehe, std::forward<T>(x)
entspricht static_cast<T&&>(x)
.C++ std :: vorwärts <T> vs static_cast <T>
Aber von dem, was ich gesehen habe, scheint static_cast<T>(x)
das Gleiche zu tun, wie in der folgenden code
Meine Frage ist also, warum std::forward<T>
als static_cast<T&&>(x)
implementiert zu sehen ist, und nicht static_cast<T>(x)
, wenn beide gleich haben bewirken?
Sie haben nicht mit 'int &' versucht. – Quentin
@Quentin In diesem Fall gibt es immer einen Lvalue zurück. – Mikrosaft
'static_cast' würde eine Kopie von rvalues –