Ich habe eine functor
, die Tupelwerte ändern muss. Also gebe ich eine const reference
dazu.Übergabe einer Konst-Referenz eines Tupels an einen Funktor
Hier ist mein Code:
void operator() (thrust::tuple<const int&,const float&> tup)
{
thrust::get<1> (tup) += 10;
thrust::get<0> (tup) += 10;
}
Aber ich erhalte eine Fehlermeldung: error: expression must be a modifiable lvalue
Klar ich nicht die Referenz zu modifizieren bin, ich nur den Wert durch das Tupel referenziert zu modifizieren.
In C++ gibt es keine "const references" (Referenzen sind nie umsetzbar). Der Begriff "const" bezieht sich immer auf den gebundenen Wert. –
Ich weiß nicht, Schub-Bibliothek, aber in den meisten Bibliotheken sind Tupel aus einem guten Grund unveränderlich. Könnte das auch in dieser Bibliothek der Fall sein? – UniversE
Wenn ich keine const-Referenz übergebe, bekomme ich diesen Fehler: Eine Referenz vom Typ "int &" (nicht const-qualifiziert) kann nicht mit einem Wert vom Typ "const thrust :: device_reference" –
PRP