Code-Beispiel
// read homework grades from an input stream into a vector<double> istream& read_hw(istream& in, vector<double>& hw)
{
if (in) {
// get rid of previous contents
hw.clear() ;
// read
double x;
while (in >> x)
hw.push_back(x);
// clear the stream so that input will work for the next
in.clear();
}
return in;
}
LValues
Da hw kein const-Objekt ist, muss der mitgegebene Vektor „leben“, also ein lvalue sein.
Angenommen
vector<double> emptyvec()
{
vector<double> v;
// no elements
return v;
}
mit dem Aufruf
read_hw(cin, emptyvec());
// error: emptyvec() is not an lvalue
kommt es zu einem Fehler, da der leere Vektor nicht außerhalb des Methodenaufrufs read_hw existiert.
Quelle: aus Koenig/Moo Accelerated C++