Lvalue to rvalue Referenzbindung
Der Compiler beschwert sich immer wieder Ich versuche, einen Wert an eine R-Wert-Referenz zu binden, aber ich kann nicht sehen, wie. Ich bin neu in C ++ 11, bin neu in der Semantik usw., bitte nehmen Sie Kontakt mit mir auf.
Ich habe diese Funktion:
template <typename Key, typename Value, typename HashFunction, typename Equals>
Value& FastHash<Key, Value, HashFunction, Equals>::operator[](Key&& key)
{
// Some code here...
Insert(key, Value()); // Compiler error here
// More code here.
}
welches diese Methode aufruft:
template <typename Key, typename Value, typename HashFunction, typename Equals>
void FastHash<Key, Value, HashFunction, Equals>::Insert(Key&& key, Value&& value)
{
// ...
}
Ich erhalte immer wieder Fehler wie die folgenden:
cannot convert argument 1 from 'std::string' to 'std::string &&'
beim Aufruf von Insert (). Nichtkey
definiert als ein Wert in der Operatorüberladung? Warum wird es als lWert neu interpretiert?
Vielen Dank.