#include <iostream>
using namespace std;
struct s{};
void someFunction(s& value){
std::cout << "ref" << std::endl;
}
void someFunction(const s&& value){
std::cout << "const" << std::endl;
}
void someFunction(s&& value){
std::cout << "non const" << std::endl;
}
const s foo() { return s(); }
s bar() { return s(); }
int main() {
someFunction(bar());
someFunction(foo());
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHN7fTsKCgp2b2lkIHNvbWVGdW5jdGlvbihzJiB2YWx1ZSl7CiAgICBzdGQ6OmNvdXQgPDwgInJlZiIgPDwgc3RkOjplbmRsOwp9Cgp2b2lkIHNvbWVGdW5jdGlvbihjb25zdCBzJiYgdmFsdWUpewogICAgc3RkOjpjb3V0IDw8ICJjb25zdCIgPDwgc3RkOjplbmRsOwp9Cgp2b2lkIHNvbWVGdW5jdGlvbihzJiYgdmFsdWUpewoJc3RkOjpjb3V0IDw8ICJub24gY29uc3QiIDw8IHN0ZDo6ZW5kbDsKfQoKY29uc3QgcyBmb28oKSB7IHJldHVybiBzKCk7IH0KcyBiYXIoKSB7IHJldHVybiBzKCk7IH0KCgppbnQgbWFpbigpIHsKICAgIHNvbWVGdW5jdGlvbihiYXIoKSk7CiAgICBzb21lRnVuY3Rpb24oZm9vKCkpOwoJcmV0dXJuIDA7Cn0=