Я хотел бы иметь функцию C ++, которая принимает аргумент, который является ссылкой, и работает как для lvalues, так и для rvalues с с одинаковым синтаксисом .
. Возьмем этот пример:
#include <iostream>
using namespace std;
void triple_lvalue(int &n) {
n *= 3;
cout << "Inside function: " << n << endl;
}
void triple_rvalue(int &&n) {
n *= 3;
cout << "Inside function: " << n << endl;
}
int main() {
int n = 3;
triple_lvalue(n);
cout << "Outside function: " << n << endl;
triple_rvalue(5);
}
Вывод:
Inside function: 9
Outside function: 9
Inside function: 15
Этот код работает.Но мне нужны две разные функции для моих случаев: первая, где я передаю n
(значение l) и 3
(значение).Мне нужен синтаксис для моей функции, которая прекрасно справляется с обоими, без необходимости повторять какой-либо код.
Спасибо!