#include <iostream>#include <utility>template<typename T>T&& rvmax(T&& u, T&& v) { return std::forward<T>(u>v ? u : v); }int main(){ int var1 = 100; int var2 = 9; std::cout << "before: " << var1 << ',' << var2 << std::endl; rvmax(var1,var2) = (var1-var2) / 2; std::cout << "after: " << var1 << ',' << var2 << std::endl; std::cout << "rvalue max: " << rvmax(100,9) << std::endl;}
[ Home | Post Entry | Log in | Search | Browse Options | Site Map ]
no subject
Isn't this what rvalue references were made for?
#include <iostream>
#include <utility>
template<typename T>
T&& rvmax(T&& u, T&& v) { return std::forward<T>(u>v ? u : v); }
int main()
{
int var1 = 100;
int var2 = 9;
std::cout << "before: " << var1 << ',' << var2 << std::endl;
rvmax(var1,var2) = (var1-var2) / 2;
std::cout << "after: " << var1 << ',' << var2 << std::endl;
std::cout << "rvalue max: " << rvmax(100,9) << std::endl;
}
$./a.out
before: 100,9
after: 45,9
rvalue max: 100