for example:
Beta_ab&&
Beta::toAB() const {
return move(Beta_ab(1, 1));
}
It can be more efficient, for example, in a bit different context:
template
T&& min_(T&& a, T &&b) {
return std::move(a < b? a: b);
}
int main() {
const std::string s = min_(std::string("A"), std::string("B"));
fprintf(stderr, "min: %s\n", s.c_str());
return 0;
}
As an interesting observation, on my machine clang++ -O3
generates 54 instructions for code above versus 62 instructions for regular std::min
. However, with -O0
it generates 518 instructions for code above versus 481 for regular std::min
.