Привет!
По стандарту число это rvalue, а строки это lvalue.
int main() {
cout << "1024" << endl; // "1024" - lvalue
cout << 1024 << endl; // 1024 - rvalue
}
Это просто произвольный выбор членов комитета по стандартизации или есть веские причины для того чтобы строка была lvalue?
Могли бы члены комитета по стандартизации принять решение, что строка тоже должна считаться rvalue или это решение противоречило бы каким-то другим положениям стандарта?